Как установить Django на хостинг

При создании сайтов разработчики сталкиваются со следующими задачами: создание форм регистрации и авторизации, внедрение панелей управления и форм обратной связи, работа с инструментами загрузки файлов и т. п. Чтобы упростить эти задачи, были созданы фреймворки.

Фреймворк — это набор компонентов, которые упрощают разработку сайтов. Он выступает каркасом: определяет структуру, набор правил и предоставляет базовые инструменты для разработки. Одним из таких фреймворков является Django.

Django — это бесплатный инструмент для веб-приложений, который написан на Python. Он предназначен для разработки приложений на Python хостинге. Django работает на серверной стороне и отвечает за критически важные части приложения. Рассмотрим, как установить Django на web хостинг.

Как установить Django на виртуальный хостинг

1. Войдите в панель управления хостингом. Для этого перейдите в личный кабинет, в строке с названием услуги хостинга нажмите на 3 точки и выберите Войти в панель управления:

2. Перейдите в раздел WWW - WWW-домены. Кликните по строке с нужным доменом и нажмите Изменить:

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:

Готово, проект перезапустится, а файл удалится автоматически.

Если вы не нашли ответ, спросите у нас!
Запросить поддержку