Deploy Django

Deploy Django3 + Apache2.4 + mod_wsgi (Ubuntu 18 without python2.7, в системе установлен только python3.6.9)

Под root:

sudo apt-get install python-pip apache2 libapache2-mod-wsgi
sudo apt-get install python3-pip apache2 libapache2-mod-wsgi-py3
sudo pip3 install virtualenv

Далее под user:

mkdir ~/myproject
cd ~/myproject
virtualenv myprojectenv
source myprojectenv/bin/activate
pip3 install django
django-admin.py startproject myproject .

В файле:

nano myproject/settings.py
прописываем:
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static/')

Запускаем миграции и создаем суперпользователя:

python manage.py makemigrations
python manage.py migrate
python manage.py createsuperuser
python manage.py collectstatic
python manage.py runserver 0.0.0.0:8000

Переходим по адресу в браузере http://localhost:8000, если отображается старница с Django - все сделано верно. Теперь можно деактивировать среду:

deactivate myprojectenv


Настройка Apache

В файле:

sudo nano /etc/apache2/sites-available/yournamesite.conf
прописываем следующий код:

<VirtualHost *:80>
  ServerName yournamesite
  ServerAlias www.yournamesite
  ServerAdmin webmaster@yournamesite
  DocumentRoot /home/pavelf/myproject/myproject

  Alias /static /home/pavelf/myproject/static
  <Directory /home/pavelf/myproject/static>
  Require all granted
  </Directory>
  <Directory /home/pavelf/myproject/myproject>
  <Files wsgi.py>
  Require all granted
  </Files>
  </Directory>
  WSGIDaemonProcess yournamesite python-home=/home/pavelf/myproject/myprojectenv python-path=/home/pavelf/myproject
  WSGIProcessGroup yournamesite
  WSGIScriptAlias / /home/pavelf/myproject/myproject/wsgi.py process-group=hodinky.site application-group=%{GLOBAL}
</VirtualHost>