Как установить Django на хостинг
При создании сайтов разработчики сталкиваются со следующими задачами: создание форм регистрации и авторизации, внедрение панелей управления и форм обратной связи, работа с инструментами загрузки файлов и т. п. Чтобы упростить эти задачи, были созданы фреймворки.
Фреймворк — это набор компонентов, которые упрощают разработку сайтов. Он выступает каркасом: определяет структуру, набор правил и предоставляет базовые инструменты для разработки. Одним из таких фреймворков является Django.
Django — это бесплатный инструмент для веб-приложений, который написан на Python. Он предназначен для разработки приложений на Python хостинге. Django работает на серверной стороне и отвечает за критически важные части приложения. Рассмотрим, как установить Django на web хостинг.
Как установить Django на виртуальный хостинг
1. Войдите в панель управления хостингом. Для этого перейдите в личный кабинет, в строке с названием услуги хостинга нажмите на 3 точки и выберите Войти в панель управления:
2. Перейдите в раздел Сайты. Кликните по строке с нужным доменом и нажмите Изменить:
3. Во вкладке “Дополнительные возможности” отметьте галочкой разделы CGI-скрипты, Python и выберите нужную версию Python. Затем нажмите Ok:
4. Подключитесь к хостингу по SSH.
5. Перейдите в каталог вашей услуги с помощью команды:
cd ~
Убедитесь, что вы находитесь в нужном каталоге. Для этого выполните команду:
pwd
Вывод команды должен быть следующим:
/var/www/u1234567/data
Вместо u1234567 будет указан логин услуги вашего хостинга.
6. Узнайте доступные версии Python. Для этого выполните команду:
ls -la /opt/python/*/bin/python
Список доступных версий будет выглядеть так:
7. Создайте виртуальное окружение с произвольным именем для версии Python, которой планируете пользоваться. Обратите внимание: окружение должно совпадать с версией, которую вы выбрали в панели управления на шаге 3.
Для этого выполните команду:
/opt/python/python-3.7.6/bin/python -m venv djangoenv
Где:
- python-3.7.6 — версия Python,
- djangoenv — название виртуального окружения.
8. Активируйте виртуальное окружение:
source djangoenv/bin/activate
Вместо djangoenv введите название виртуального окружения.
Если активация прошла корректно, слева от строки ввода появится имя виртуального окружения:
9. Обновите pip, а также установите нужные пакеты django и mysqlclient с помощью команды:
pip install --upgrade pip && pip install django && CFLAGS="-std=c99" pip install mysqlclient
10. Перейдите в корневую директорию вашего сайта. Для этого выполните команду:
cd www/test2d.ru/
Вместо test2d.ru укажите название каталога сайта.
Чтобы убедиться, что вы в нужном каталоге, выполните команду:
pwd
Вывод команды будет следующим:
/var/www/u1234567/data/www/test2d.ru
Где:
- u1234567 — логин услуги хостинга,
- test2d.ru — название каталога сайта.
11. Переходите к созданию нового проекта. Обратите внимание: перед созданием проекта удалите все файлы из каталога сайта, иначе Django будет работать некорректно.
Для создания проекта введите команду:
django-admin startproject example_project
Вместо example_project укажите название проекта.
12. Откройте файл настройки проекта:
vim example_project/example_project/settings.py
Вместо example_project введите название проекта.
13. В блоке ALLOWED_HOSTS = [] добавьте домен и его псевдонимы. И домен, и псевдонимы возьмите в одинарные кавычки, как показано на скриншоте:
14. В блоке DATABASES укажите данные для подключения к БД:
Где:
- u1234567_database — имя базы данных,
- u1234567_username — имя пользователя БД,
- password — пароль пользователя БД.
15. После блока STATIC_URL добавьте блок:
STATIC_ROOT='static/'
Блоки нужно расположить следующим образом:
Нажмите Esc, чтобы выйти в командный режим. Чтобы сохранить изменения, введите команду:
:wq
Затем нажмите Enter.
16. Создайте каталог со статическими файлами:
python example_project/manage.py collectstatic
Вместо example_project укажите название проекта.
Когда закончится создание каталога, появится сообщение:
128 static files copied to '/var/www/u1234567/data/www/test2d.ru/example_project/static'.
Вместо 128 может быть указано другое количество файлов.
17. Выполните миграцию в MySQL:
python example_project/manage.py migrate
Вместо example_project введите название проекта.
18. Создайте конфигурационный файл passenger_wsgi.py в корневой папке сайта. Для этого выполните команду:
vim /var/www/u1234567/data/www/test2d.ru/passenger_wsgi.py
Где:
- u1234567 — логин услуги хостинга,
- test2d.ru — корневая папка сайта.
19. Добавьте в конфигурационный файл текст:
# -*- coding: utf-8 -*-
import os, sys
sys.path.insert(0, '/var/www/u1234567/data/www/test2d.ru/example_project')
sys.path.insert(1, '/var/www/u1234567/data/djangoenv/lib/python3.7/site-packages')
os.environ['DJANGO_SETTINGS_MODULE'] = 'example_project.settings'
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
Где:
- u1234567 — логин услуги хостинга,
- test2d.ru — корневая папка сайта,
- example_project — название проекта,
- python3.7 — ваша версия Python,
- /var/www/u1234567/data/www/test2d.ru/example_project — путь к проекту,
- /var/www/u1234567/data/djangoenv — путь до каталога виртуального окружения.
Нажмите Esc, чтобы выйти в командный режим. Чтобы сохранить изменения, введите команду:
:wq
Затем нажмите Enter.
Готово, теперь при переходе на сайт отображается стартовая страница Django:
Как перезапустить проект
Если вы хотите посмотреть изменения в файлах проекта — перезапустите его. Для этого в корневой директории сайта создайте файл .restart-app:
1. Войдите в панель управления хостингом. Для этого перейдите в личный кабинет, в строке с названием услуги хостинга нажмите на 3 точки и выберите Войти в панель управления:
2. Перейдите в раздел Менеджер файлов. Откройте корневую папку сайта и нажмите Создать:
3. В поле “Тип” из выпадающего списка выберите Файл, а в поле “Имя” укажите название файла. Затем нажмите Ok:
Готово, проект перезапустится, а файл удалится автоматически.