Прежде чем начнём, рекомендую ознакомится с инструкциями по настройке сервера (LAMP) и FTP + Python.
Итак, начнём. На всякий случай проверим, вдруг Джанго уже установлен.
django-admin --version
Если нет, то инсталируем
sudo apt install python3-django
Также откроем порт 8000 (если он у вас не был открыт ранее) и перезапустим Апач:
sudo ufw allow 8000
sudo ufw disable
sudo ufw enable
Теперь переходим на сервере туда, где у вас хранятся сайты. В моём случае это:
cd /var/www/html
и создаём проект django командой:
django-admin startproject project1
это действие создаст папку project1 и в ней ещё одну папку с таким же названием файл settings.py, который нам нужно отредактировать. Используем команду:
nano project1/project1/settings.py
Находим в файле директиву ALLOWED_HOSTS = ['X.X.X.X'] и в квадратных скобочках (вероятно они у вас пустые), прописываем ip нашего сервера, заменив X своими числами:
Обратите внимание, что вместо ip можно указывать URL вашего сайта. Тогда в кавычках через запятую надо указать как основной адрес сайта, так и псевдоним. Например так:
ALLOWED_HOSTS = ['icopydoc.com', 'www.icopydoc.com']
Далее нажимаем Ctrl+S для сохранения файла и Ctrl+X для выхода.
Теперь выполним миграцию Джанго
python3 manage.py migrate
а после создадим суперпользователя для админки Джанго
python3 manage.py createsuperuser
Остаётся только запустить сервер. Выполняем команду (вместо X - ip сервера).
python3 manage.py runserver X.X.X.X:8000
После этого вы увидите примерно такое сообщение:
А если откроете свой сервер, то стартанёт главная страничка Джаного http://X.X.X.X:8000. Админка джанго будет доступна по адресу: http://X.X.X.X:8000/admin/
Для остановки сервера нужно воспользоваться командой Ctrl + C.
Установка Джанго в виртуальное окружение
Установка Джанго в ваше виртуальное окружение (virtualenv) делается в тех случаях, когда необходимо изолировать Django для каждого проекта. Если у вас только один проект на сервере, то смысла в таком решении нет. Зато, если вы используете Джанго в разных проектах, то это трюк предотвратит возможные изменения в одном проекте при редактировании другого.
Итак. Тут всё похоже с предыдущим способом за исключением ряда моментов. Для начала нам надо создать виртуальную среду (в примере я назову её icopydoc). Делается это так:
python3 -m venv icopydoc
далее мы запускаем эту виртуальную среду:
source icopydoc/bin/activate
Если нужно будет деактивировать виртуальную среду, то делается это командой deactivate
,
Так вот. Особенность виртуальной среды в том, что в ней нет Джанго. Его нам надо будет проинсталлировать. Обратите внимание, что перед командами я написал (icopydoc)$ - эту часть в консоль вставлять не нужно. Это показывает, что мы находимся внутри виртуальной среды. У вас в консоли, когда вы активируете виртуальную среду, тоже будет её название в скобках.
(icopydoc)$ sudo apt install python3-django
После того как джанго установлен, создаём проект. Логика такая же, как и в случае без использования виртуальной среды. По этой причине повторяться не буду, просто напишу последовательность команд:
(icopydoc)$ django-admin startproject project2
(icopydoc)$ nano nano project2/project2/settings.py
(icopydoc)$ python3 manage.py migrate
(icopydoc)$ python3 manage.py createsuperuser
(icopydoc)$ python3 manage.py runserver X.X.X.X:8000
После завершения тестирования проекта нужно остановить выполнение runserver
, нажав Ctrl + C. А для выхода из виртуальной среды воспользоваться командой deactivate
:
deactivate
На этом всё. Теперь вы знаете, как выложить в интернет Джанго-проект на сервере и в виртуальном окружении.