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>