Вопросы и ответы - Макхост

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

Как установить Django на хостинг с панелью ISPManager?

03.02.2023   10:37
Сотрудник Субботин Евгений
 нет комментариев
ОТВЕТЫ НА ВОПРОС (2)
Сотрудник Субботин Евгений

Эта инструкция позволит вам установить Django Framework.
Вам понадобится любой клиент, который поддерживает протокол SSH (например, putty).

Все файлы необходимо редактировать с помощью консольного текстового редактора, например, nano. Для этого нужно открыть файл командой:

nano -w $HOME/имя_файла

После того, как вы внесёте изменения, сохраните файл сочетанием клавиш Ctrl-O и выйдите из редактора комбинацией Ctrl-X.
Не нужно пытаться редактировать файлы с помощью встроенного в панель текстового редактора, так как он сохраняет их с переносами строк формата DOS, не совместимыми с UNIX-скриптами.

Устанавливаем Django:

1) Создадим виртуальное окружение «djangoenv» для Python:

mkdir -p $HOME/private/venvs && cd $_
/opt/alt/python37/bin/python3.7 -m virtualenv djangoenv

2) Активируем созданное виртуальное окружение командой:

source djangoenv/bin/activate

3) Устанавливаем необходимые пакеты:

pip install --upgrade pip && pip install django django-fastcgi-server flup6 && CFLAGS="-std=c99" pip install mysqlclient

4) Создадим и настроим проект Django:

mkdir $HOME/private/app && cd $_
~/private/venvs/djangoenv/bin/django-admin startproject myapp

Для того, чтобы можно было зайти на сайт, необходимо отредактировать настройки безопасности в файле ~/private/app/myapp/myapp/settings.py:

ALLOWED_HOSTS = []

Заменим на:

ALLOWED_HOSTS = ['ваш_сайт']

Вместо ваш_сайт укажите имя вашего домена. Настроим базу данных в том же файле:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': BASE_DIR / 'db.sqlite3',
    }
}

Заменим на данные доступа к MySQL базе из панели управления хостингом, где pXXXXXX — логин вашей услуги:

DATABASES = {
    'default': {
        'HOST': 'localhost',
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'pXXXXXX_база',
        'USER': 'pXXXXXX_пользователь',
        'PASSWORD': 'пароль_к_базе',
        'OPTIONS': {
            'init_command': "SET sql_mode='STRICT_TRANS_TABLES'",
        },
    }
}

Настроим статические файлы. Дополним всё тот же файл settings.py строкой:

STATIC_ROOT = '/var/www/pXXXXXX/data/www/ваш_сайт/static/'

Вместо pXXXXXX подставьте логин вашей услуги, а вместо ваш_сайт снова введите имя вашего домена. Сохраним файл, выполним миграцию в MySQL и соберём статику:

cd $HOME/private/app/myapp
$HOME/private/venvs/djangoenv/bin/python ./manage.py migrate
$HOME/private/venvs/djangoenv/bin/python ./manage.py collectstatic

5) Убедитесь, что для вашего сайта установлен параметр «CGI-скрипты» в настройках www-доменов для вашего сайта в панели ISPManager:

6) Создадим fcgi-скрипт с именем mysite.fcgi в директории $HOME/www/ваш_сайт/cgi-bin/ не забывая заменить pXXXXXX на ваш логин во всех трёх строках:

#!/var/www/pXXXXXX/data/private/venvs/djangoenv/bin/python
# -*- coding: utf-8 -*-
import sys, os

sys.path.insert(0, '/var/www/pXXXXXX/data/private/app/myapp')
sys.path.insert(1, '/var/www/pXXXXXX/data/private/venvs/djangoenv/lib/python3.7/site-packages')

os.environ['DJANGO_SETTINGS_MODULE'] = "myapp.settings"

from django.core.wsgi import get_wsgi_application
from django_fastcgi.servers.fastcgi import runfastcgi

application = get_wsgi_application()
runfastcgi(application, method="threaded", daemonize="false")

7) Выставим права для этого файла:

chmod 750 $HOME/www/ваш_сайт/cgi-bin/mysite.fcgi

7) Создадим файл .htaccess в папке с публичными документами $HOME/www/ваш_сайт:

AddHandler fcgid-script .fcgi
Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteRule ^(media/.*)$ - [L]
RewriteRule ^(static/.*)$ - [L]
RewriteCond %{REQUEST_URI} !(cgi-bin/mysite.fcgi)
RewriteRule ^(.*)$ cgi-bin/mysite.fcgi/$1 [L]

В результате после перехода по URL вашего сайта должно быть следующее сообщение:

 

03.02.2023   10:42
 Комментировать

Пользователь ID 138343

в данный момент вышел джанго 5.0.3

можно ли установить версии 5

31 марта, в 18:09
 Комментировать

Для ответа нужно зарегистрироваться или авторизоваться.