Краткое описание того, как я устанавливал 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>