Раздел помощи SpaceWeb

Установка Django

Для установки и создания проекта на фреймворке 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

   При использования бэкэнда Apache 2.2 + mod_passenger + mod_wsgi, стоить обратиь внимание, что в этом случае Модуль mod_wsgi использует по умолчанию python 2.7 и новые весрии django будут работать с ошибками.