Как развернуть django сайт на хостинг от reg.ru. Полная инструкция

Часы
16.03.2025
Часы
15.04.2025
Часы
3 минуты
Глазик
333
Сердечки
0
Соединённые точки
0
Соединённые точки
1
Соединённые точки
0

Вступление

В этой статье, которая будет финальной для серии статей про парсера поисковой выдачи. Я покажу как развернуть сайт на Django, фронтенд которого написан на React, на серверах от хостинг-провайдера reg.ru. Начну с того, что ты уже должен быть зарегистрирован и имеешь оплаченный хостинг и доменное имя. Всё, конечно же, от хостинг-провайдера, reg.ru. У них, хочу заметить, очень красивое оформление админки и личного кабинета.

Настраиваем хостинг

После приобретения услуги хостинга и доменного имени, с главной страницы нужно будет зайти в хостинг.
После перейти в панель управления (значок компьютера)
Дальше, нужно будет на дашборде перейти на все сайты(1), выбрать соответствующий сайт(2) и нажать кнопку изменить параметры(3).
Теперь про то, какие рычажки и кнопочки нужно будет прожмякать обязательно. Если быть более конкретным это выбрать необходимую версию пайтона и подключить CGI-скрипты.
Хочу отметить, если твой django-сайт написан на версиях выше 4.2, то для тебя (ровно как и для меня) подойдёт только одна версия python, 3.10.1. Так же, если ты ещё покупал SSL-сертификат включи и его.
Хочу просто сделать одно замечание по поводу интерфейса. Очерёдность версий интерпретатора питона идёт от самой ранней, до самой поздней, казалось бы. Но почему-то 3.10 версия находится чуть ли не в середине. Я так-то её и не сразу заметил. А нужна именно она.
Мы закончили базовую настройку хостинга. И в отличие от хостинг-провайдера beget, нам не потребуется вручную скачивать и устанавливать необходимую версию python и openssl.

Развёртывание сайта

Развёртывание сайта всегда начинается с переноса его файлов. Их можно перенести двумя способами, или через панель управления, или используя scp-команду, через терминал. Здесь я рассмотрю только первый способ, ибо это тупо проще.
Сначала зайди в файловый менеджер, после чего нужно будет зайти в директорию под названием того доменного имени, которое ты купил. В моём случае это search-result-parser.site. Все такие директории находятся в www директории.
Загрузим архив с файлами сайта и распакуем его соответственно там же. Готовую версию сайта я тебе предоставляю. Там уже будет файл с зависимостями, скриптами и настройками. Только скачай его.

Настройка статических и медиа файлов

Для того чтобы сервер мог получить доступ к нашим файлам все они должны быть в корневой директории сайта, то есть в моём случае это /www/search-result-parser.site/. Надо будет поменять следующие строки в settings.py файле на:
STATIC_URL = '/static/'
STATIC_ROOT = 'static/'

MEDIA_URL = '/media/'
MEDIA_ROOT = 'media/'
Вот и всё.

Настройка базы данных

Чтобы получить минимально работающий сайт, нужно только настроить базу данных. SQLite конечно же не подходит для этих целей. Нужно перейти на ту базу данных, которая поддерживается самим сервером. В случае с reg.ru это MySQL.
Нужно будет заменить следующие строки в settings.py:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'database_name',
'USER': 'user_name',
'PASSWORD': 'database_password',
'HOST': 'localhost',
}
}
Но это ещё не всё. Конкретно сейчас нас интересуют следующие ключи в словаре:
  1. NAME - Имя базы данных
  2. USER - Имя пользователя базы данных
  3. PASSWORD - Пароль от базы данных
Все остальные значения остаются такими, какими я их указал. Как найти значения для них?
Заходим в базы данных на дашборде, создать базу данных. По умолчанию у тебя уже будет создана новая база данных. Можно использовать и её, но я покажу как создать свою.
Заполняем необходимые поля. Так же ты можешь создать отдельного пользователя для базы данных или использовать уже существующего.
Теперь и база данных успешно настроена для работы.

"Установка" сайта

Теперь займёмся установкой сайта, так сказать. Под установкой я подразумеваю, копирование всех статических файлов, создание миграций для базы данных и написание дополнительных скриптов прослоек между нашим сайтом и самим сервером.
В корневой директории сайта создай виртуальное окружение, активируй его и установи необходимые пакеты через pip:
cd /www/search-result-parser.site/
/opt/python/python-3.10.1/bin/python3.10 -m venv .venv
source .venv/bin/activate
pip install -r req.txt
Хочу отметить что, если тебе нужно использовать python3.10, то придётся прописывать полный путь до интерпретатора, ибо его нет в переменной окружения $PATH. Учти.
Теперь перенесём все статические файлы, создадим миграции для базы данных, а так же скомпилируем переводы.
python ./Website/manage.py collectstatic
python ./Website/manage.py migrate
python ./Website/manage.py compilemessages
Все статические файлы будут перемещены в /www/search-result-parser.site/ (Все медиа файлы тоже будут там же). Все необходимые таблицы так же будут созданы, ровно, как и файлы с переводами.
Последним и завершающим шагом в "установке" сайта будет создание passenger-wsgi.py скрипта с таким вот содержимым.
# -*- coding: utf-8 -*-
import os, sys
sys.path.insert(0, '/var/www/u3044930/data/www/search-result-parser.site/Website')
sys.path.insert(1, '/var/www/u3044930/data/www/search-result-parser.site/.venv/lib/python3.10/site-packages')
os.environ['DJANGO_SETTINGS_MODULE'] = 'Website.settings'
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
Где вместо sys.path.insert(0, ..., ты должен будешь указать путь до корневой папки своего django-сайта.
Где вместо sys.path.insert(1, ..., ты должен будешь указать свой путь до пакетов в виртуальном окружении, созданным ранее.

Перезапуск сервера

Теперь перезапусти сервер создав в корневой директории сайта, /www/search-result-parser.site/, файл .restart-app. Сервера работают таким образом, что каждую минуту проверяют хостинги на наличие вот такого файла и если он есть, перезапускают.

Заключение

Таким вот образом, ты теперь сам сможешь развернуть сайт написанный на django. Скажу сразу, в сравнении с хостинг-провайдером от beget, установка на reg.ru гораздо проще и дружелюбнее. И теперь мой сайт про парсинг поисковой выдачи доступен для всех вас. \^o^/


Комментарии

(1)

captcha
Отправить
Часы 4 апреля 2025 г. 16:05
Человек Денис
Вторя часть гайда не понятная (рофлы с тем что при выборе питона 3.10 они дают 3.8 это конечно да) допиши полностью вторую часть

Другое

Похожие статьи


Как разместить django сайт на хостинг от beget. Полная инструкция.

Часы
12.05.2024
Глазик
1251
Сердечки
3
Соединённые точки
1
Соединённые точки
0
Соединённые точки
0
Ты узнаешь как подключить домен, перенести проект, переместить базу данных, подготовить виртуальное окружение. И несколько других трюков.

Серия статей о создании и продвижении SearchResultParser | Tim the webmaster

Часы
16.07.2024
Глазик
142
Сердечки
0
Соединённые точки
0
Соединённые точки
0
Соединённые точки
0
Это статья-вступление и статья-навигатор по проекту/веб-инструменту SearchResultParser. Чему можно будет научиться и для кого эта серия статей

Разработка фронтенда сайта на React с бэкендом на Django | SearchResultParser ч. 2

Часы
16.08.2024
Глазик
479
Сердечки
0
Соединённые точки
0
Соединённые точки
0
Соединённые точки
0
Показываю и рассказываю о том как разработать фронтен для сайта на Реакте с бэкендом на django. Использую MaterialUI и TailwindCSS, с исходным кодом и комментариями.

Как добавить локализацию для django сайта (python, js, шаблоны и модели) ч. 5

Часы
06.02.2025
Глазик
198
Сердечки
0
Соединённые точки
0
Соединённые точки
0
Соединённые точки
0
В этой статье я покажу, как можно добавить локализацию и переводы для django сайта(i18n). Мы будем переводить Python, JS код, а так же шаблоны и django-модели. Плюс, переводы используя i18next …

Анализ трафика сайта за Январь, Февраль

Часы
03.03.2025
Глазик
95
Сердечки
0
Соединённые точки
0
Соединённые точки
0
Соединённые точки
0
Про то, чего достиг мой сайт при SEO продвижении за Январь-Февраль. Анализ трафика от Google через GSC и анализ трафика от Яндекса используя Yandex.Webmaster. Так же предоставлена полная статистика о …

Использованные термины


Релевантные вопросы