Для установки и создания проекта на фреймворке Django потребуется выполнить действия, описанные ниже. Установка Django осуществляется посредством протокола SSH:
Пред установкой необходимо выполнить несколько подготовительных шагов:
Создаем файл профиля и прописываем туда путь до локальной директорий каталога, в которой будут находится файлы ".virtualenv" и необходимые библиотеки "django:"
username@vh200 ~ $ nano ~/.profile
Добавляем в созданный файл такую строку:
export PATH=$HOME/.local/bin:$PATH
После этого нужно разлогинеться и снова подключиться к серверу
Теперь скачиваем утилиту get-pip:
username@vh200 ~ $ wget https://bootstrap.pypa.io/get-pip.py
Устанавливаем утилиту get-pip:
username@vh200 ~ $ python3.8 get-pip.py
Устанавливаем virtualenv:
username@vh200 ~ $ pip3.8 install virtualenv
Теперь можно перейти к этапу установки фреймворка
1. Для установки необходимо воспользоваться утилитой virtualenv. Создать и активировать виртуальное окружение для Вашей версии фреймворка Django можно в каталоге ".djangovenv":
username@vh200 ~ $ virtualenv .djangovenv
username@vh200 ~ $ source .djangovenv/bin/activate
2. Далее необходимо установить требуемую версию фреймворка в виртуальном окружении (в данном случае выбрана версия Django 3.2.6):
username@vh200 ~ $ pip install django==3.2.6
3. В следующем шаге необходимо перейти в каталог сайта, где будет расположен сам проект. В качестве примера выбран каталог "~/site1" на который направлен домен:
username@vh200 ~ $ cd ~/site1
4. После этого требуется создать проект Django и деактивировать виртуальное окружение:
username@vh200 ~ $ django-admin.py startproject 'SWeb_DjangoSite' && deactivate
При создании возможно заменить имя проекта "SWeb_DjangoSite" на нужное.
5. Необходимо убедитьcя, что каталог с проектом был создан и переместить его содержимое в каталог "public_html".
Проще всего это сделать удалив существующий каталог "public_html" и переименовав каталог с самим проектом:
username@vh200 ~/site1 $ rm -rf public_html/
username@vh200 ~/site1 $ mv SWeb_DjangoSite/ public_html
Далее необходимо перейти в каталог:
username@vh200 ~/site1 $ cd public_html/
6. Далее требуется открыть файл "wsgi.py" в подкаталоге с именем проекта с помощью текстового редактора и указать полные пути к установленному фреймворку, проекту и виртуальному окружению.
Полный путь к текущему каталогу можно узнать, выполнив команду "pwd":
username@vh200 ~/site1/public_html $ pwd
/home/u/username/site1/public_html
В данном случае содержимое файла следующее:
# -*- coding: utf-8 -*-
import os,sys
#путь к проекту
sys.path.append('/home/u/username/site1/public_html')
#путь к фреймворку
sys.path.append('/home/u/username/site1')
#путь к виртуальному окружению
sys.path.append('/home/u/username/.djangovenv/lib/python3.8/site-packages/')
#исключить системную директорию
sys.path.remove('/usr/lib/python3.8/site-packages')
os.environ["DJANGO_SETTINGS_MODULE"] = "ИМЯ_ПРОЕКТА.settings"
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
Текст "ИМЯ_ПРОЕКТА" необходимо изменить на имя созданного проекта, в нашем случае это SWeb_DjangoSite.
7. В каталоге сайта создать файл .htaccess с указанием полного пути к файлу "wsgi.py".
В данном случае содержимое файла "~/site1/public_html/.htaccess" следующее:
AddDefaultCharset utf-8
AddHandler wsgi-script .py
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /ИМЯ_ПРОЕКТА/wsgi.py/$1 [QSA,L]
Текст "ИМЯ_ПРОЕКТА" также необходимо изменить на имя созданного проекта.
8. В панели управления хостинга в разделе «Сайты» необходимо убедиться, что для сайта выбрана версия Apache 2.4 + PHP 8 opcache + mod_wsgi python3.8
Для того чтобы изменения вступили в силу, необходимо выполнять перезапуск сервиса django. Для этого нужно перейти в Панель управления аккаунта, в раздел Хостинг->Сайты нажать на нужный сайт, в колонке Конфигурация нажать на ссылку Настройки и далее выбрать текущую версию бэкэнда "Apache 2.4 + PHP 8 opcache + mod_wsgi python3.8 (Актуальная версия)" и нажать на кнопку сохранить. В этом случае сервис django будет перезапущен и изменения будут приняты системой.
При использования бэкэнда Apache 2.2 + mod_passenger + mod_wsgi, стоить обратиь внимание, что в этом случае Модуль mod_wsgi использует по умолчанию python 2.7 и новые весрии django будут работать с ошибками.