Ставим django на Ubuntu 17.04 server и apache через mod_wsgi

Краткое описание того, как я устанавливал django на ubuntu, дабы попробовать себя в разработке.
Python в ubuntu 17.04 по умолчанию версии 3.5.3
Установим apache и необходимые пакеты:

sudo apt-get install apache2 apache2-utils libexpat1 ssl-cert
sudo apt-get install libapache2-mod-wsgi
sudo apt intall python-pip
sudo apt install python-django python-django-common

Создадим проект revision:

cd /home
mkdir sites
cd sites
django-admin startproject revision

Запустим миграции для создания структуры базы:

python3 manage.py migrate

Для сервера разработки откроем 8000 порт:

sudo ufw allow 8000

Проверим работает ли встроенный сервер:

python3 manage.py runserver 0.0.0.0:8000
nano django.wsgi

import os
import sys
sys.path.append('/home/varlog/site')
sys.path.append('~/site/revision/revision/lib/python3.5/site-packages')
os.environ['DJANGO_SETTINGS_MODULE'] = 'revision.settings'
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()

Нужно установить виртуальное окружение. Я наверное поторопился и установил его прямо в папку с проектом, но для теста не суть:

cd /home/varlog/site/revision/
sudo pip3 install virtualenv
python3 -m venv revision

Запустим виртуальное окружение и в нем установим django

cd revision/bin
source activate

в командной строке слева должно отобразится название окружения(в моем случае revision)
Ставим django:

pip install django

Установится django и можно выйти из виртуального окружения:

deactivate

И настроить apache:

cd /etc/apache2/sites-available
sudo nano 000-default.conf


<VirtualHost *:80>
 ServerAdmin webmaster@localhost
 WSGIScriptAlias / /home/varlog/site/revision/django.wsgi
 DocumentRoot /home/varlog/site/revision/revision
 WSGIDaemonProcess revision python-path=/home/varlog/site/revision python-home=/home/varlog/site/revision/revision
 WSGIProcessGroup revision
 ErrorLog ${APACHE_LOG_DIR}/error.log
 CustomLog ${APACHE_LOG_DIR}/access.log combined
 AddHandler wsgi-script .wsgi
 <Directory "/home/varlog/site/revision">
 AllowOverride FileInfo
 Options ExecCGI MultiViews FollowSymLinks
 MultiviewsMatch Handlers
 Order deny,allow
 Allow from all
 </Directory>
</VirtualHost>


cd ..
sudo nano apache2.conf


WSGIScriptAlias / /home/varlog/site/revision/revision/wsgi.py
WSGIPythonPath ~/site/revision/revision/lib/python3.5/site-packages:/home/varlog/site/revision/revision

<Directory /home/varlog/revision/revision>
<Files wsgi.py>
Order deny,allow
Require all granted
</Files>
</Directory>

Понравилась статья? Поделиться с друзьями: