Как загрузить django сайт на beget
Перейти к содержимому

Как загрузить django сайт на beget

  • автор:

Установка и настрока Django проекта на хостинге Beget

Мой сайт работает на хостинге Beget и написан с ипользованием Python и фреймворка Django. Бегет хорошо подходит для размещения небольших проектов как этот. В этой статье раскажу как хостить Django-проект на Бегете.

Для начала создадим сайт в панели администратора

  1. Создадим домен и прекрепим для него новую папку с каким-нибудь именем
  2. В разделе CMS, главного меню хостинга, выберем Django и установим каркас приложения

После установки фреймворка в конреновой директории можно найти файл README.txt следующего содержания

Django установленный системой автоматической установки cms LTD BEGET
Действия описанные ниже необходимо выполнять в docker-окружении выполнив команду ниже ssh localhost -p222
для установки дополнительных модулей используйте pip
сам Django располагается в папке
/home/u/username/site-directory/public_html/venv/ для начала надо переключиться на текущий virtualenv
заходим в папку с проектом
cd /home/u/username/site-directory/public_html
source venv/bin/activate

проверяем правильно ли определился путь до pip:
which pip
/home/u/username/site-directory/public_html/venv/bin/pip

теперь мы можем пользоваться pip’ом для установки модулей не указывая полного пути до исполняемого файла:
pip install
где имя модуля который мы хотим установить
Для перезапуска passenger в папке проекта достаточно выполнить команду touch на пустом файле restart.txt
pwd
/home/u/username/site-directory/public_html/HelloDjango/HelloDjango/tmp
touch restart.txt

Создание репозитория

Создайте репозиторий на любом из сервесов: Github, Bitbucket или Gitlab. Не рекомендуется хранить данные для подключения к базе данных в репозитории. Но если вы решили так сделать, не забудьте создать приватный репозиторий.
В личного кабинета в сайдбаре нужно включить SSH-доступ.

Подключимся к хостингу по ssh:

Пароль для доступа такой же как и от личного кабинета

Зайдем в docker-контейнер:

ssh localhost -p 222

Пароль для доступа такой же как и от личного кабинета

Инициализируем репозиторий в директории /public_html:

git commit -m «Initial commit»

Добавим ссылку на внешний репозиторий:

git add remotename url

Проверим, что репозиторий добавлен:

origin https://github.com/username/repository (fetch)

origin https://github.com/username/repository (push)

Привяжем ветку master к внешней ветке и отправим файлы в репозиторий:

git branch —set-upstream-to=origin/master

Теперь можно разрабатывать сайт на локальной машине. Когда нужно будет перенести сайт на сервер нужно выполнить одну команду и поправить конфигурационные файлы, если потребуется

Дополнительные действия

Для раздачи статики нужно сделать относительные ссылки:

В корневой директории

ln -s public_html public

На директорию static в public_html

rm -rf static
ln -s HelloDjango/static static

Начинаем развертывание Django-сайта на хостинге

Предположим, что мы завершили начальную разработку сайта на тестовом веб-сервере и решили предъявить его миру, то есть, выложить на боевом веб-сервере. Часто для этого арендуется хостинг или сервер целиком (иногда его части – технология VPN) где и планируется расположить проект с файлами и БД. У каждого хостинг-провайдера используется свое оборудование и программное обеспечение, поэтому конкретные шаги по установке проекта на разных хостингах будут отличаться. Но общий принцип похож и его я буду демонстрировать на примере довольно популярного хостера – Beget (это не реклама, мои сайты расположены на других хостингах, так сложилось исторически).

Возможно, некоторые из вас уже связаны с этим хостингом, учитывая его популярность. Это была главная причина выбора Beget в качестве примера. Далее, я буду показывать все так, как выглядит на момент записи этого видео. Возможно, со временем интерфейс и даже некоторые шаги изменятся, но, думаю, общий принцип сохранится. Поэтому будьте внимательны и не повторяйте просто так, бездумно, все, что я показываю в этом и последующих видео.

Итак, после простой регистрации в сервисе, с которым, я думаю, вы разберетесь самостоятельно, мы выбираем один из тарифных планов (я выбрал Blog с месячным тестовым периодом, вполне достаточным, чтобы развернуть сайт и записать эти занятия). Админ-панель выглядит следующим образом:

Здесь нужно открыть вкладку FTP и активировать SSH-доступ, так как он нам в дальнейшем пригодится:

Затем, перейдем на вкладку «Управление сайтами» и здесь у нас уже должен быть тестовый домен 3-го уровня от Beget:

Обратите внимание, с этим доменом связан конкретный каталог, где предполагается хранить файлы сайта. В частности, именно в нем мы будем располагать виртуальное окружение, и устанавливать нужную версию Python и Django, а также другие необходимые зависимости (библиотеки).

Конечно, некоторые из вас могут внимательно изучить админку от Beget и увидеть раздел CMS, где, в частности, имеется и Django:

Но я не рекомендую его устанавливать в автоматическом режиме, так как здесь используется далеко не последняя версия, да и версия языка Python также оставляет желать лучшего. Поэтому, мы будем делать все вручную и с использованием виртуального окружения. Благо, хостеры заботятся об этом и выкладывают подробную документацию об этапах установки того или иного фреймворка. В частности, на странице:

подробно описываются шаги по развертыванию фреймворка Django. Возможно, вас несколько удивит объем приведенной информации и множества шагов, которые необходимо выполнить для установки Django. Но я для того и записываю видео, чтобы постараться все «разложить по полочкам». Конечно, так, насколько я сам понимаю этот процесс.

Для взаимодействия с хостингом на уровне команд нам потребуется специальная программа SSH-клиент PuTTy. Подробно о ней написано здесь:

и используется для ОС Windows (полагаю, что большинство из вас работают именно под этой системой). Скачиваем файл с этой программой (если ее еще нет у вас, или версия устарела) и запускаем. У нас появится следующее окно:

В поле «Host Name (or IP address)» вводим SSH-адрес хостинга и нажимаем на кнопку «Open». Появится консольное окно, где нужно ввести логин и пароль, полученный при регистрации:

  • установить версию языка Python 3.8.3 (такую же, что и в тестовом проекте);
  • настроить виртуальное окружение с именем djangoenv;
  • установить в виртуальное окружение фреймворк Django 3.1.5 (тот же, что и в тестовом проекте);
  • выполнить настройку зависимостей для активации Django для сайта sbalak.beget.tech;
  • создать БД MySQL, связать ее с приложением и перенести все таблицы из нашего проекта.
ssh localhost -p222

и еще раз введем пароль. (Список всех команд будет приведен в отдельном файле со ссылкой на github). Далее, нам понадобится раздел «Локальная установка Python», где подробно приведена установка интерпретатора выбранной версии. Мне нужна версия 3.8.3. Здесь в описании используется каталог .beget/tmp, которого у меня нет. Создать можно командой:

mkdir -p ~/.beget/tmp

а, затем, перейти в него:

cd ~/.beget/tmp/

Далее, по документации, для сборки интерпретатора Python потребуется библиотека ffi, которую нужно сначала скачать командой:

wget ftp://sourceware.org/pub/libffi/libffi-3.2.1.tar.gz

Распаковать:

tar -xf libffi-3.2.1.tar.gz && cd libffi-3.2.1

Сконфигурировать:

./configure --prefix $HOME/.local LDFLAGS="-L/usr/local/lib"
make -j33 && make install

После этого, в директории с кодом libffi-3.2.1/x86_64-unknown-linux-gnu/include появятся два файла: ffi.h и ffitarget.h. Их нужно скопировать в каталог ~/.local/include. Переходим в корневой каталог

создаем нужные каталоги:

mkdir -p ~/.local/include

делаем для этой папки общий доступ и выполняем копирование:

cp x86_64-unknown-linux-gnu/include/ffi.h ~/.local/include/ cp x86_64-unknown-linux-gnu/include/ffitarget.h ~/.local/include/

Далее, нам нужно скачать и собрать Python 3.8.3. Снова переходим в каталог:

cd ~/.beget/tmp

и скачиваем архив с версией 3.8.3:

wget https://www.python.org/ftp/python/3.8.3/Python-3.8.3.tgz

Распаковываем архив и переходим в созданный каталог:

tar -xf Python-3.8.3.tgz && cd Python-3.8.3

Настраиваем все необходимые зависимости:

./configure --prefix=$HOME/.local LDFLAGS="-L/usr/local/lib"

и запускаем процесс компиляции:

make -j33 && make install

Проверить корректность установки можно командой:

~/.local/bin/python3.8 –V

Настройка окружения virtualenv

Все, язык Python нужной версии 3.8.3 установлен и следующим шагом нам нужно создать виртуальное окружение. Это окружение будем создавать в каталоге sbalak.beget.tech, поэтому вначале выполним команду:

cd ~/sbalak.beget.tech

Затем, для локально созданного интерпретатора языка, вызовем команду создания виртуального окружения, следующим образом:

~/.local/bin/pip3.8 install virtualenv ~/.local/bin/python3.8 -m virtualenv djangoenv

У нас появится папка djangoenv в каталоге sbalak.beget.tech. Виртуальное окружение с именем djangoenv создано. Активируем его командой:

source djangoenv/bin/activate

А командой

which python

можно проверить текущую работающую версию языка Python. Далее, мы установим пакет Django в это виртуальное окружение:

pip install django==3.1.5

(Здесь дополнительно указана версия пакета 3.1.5, так как я этого хочу, если вы устанавливаете последнюю версию, то просто напишите django). В принципе, фреймворк Django установлен и должен быть готов к работе. Создадим с его помощью проект coolsite и проверим как он будет работать. Вначале выполним знакомую нам команду:

django-admin.py startproject coolsite

Далее, в каталог sbalak.beget.tech нужно скопировать файл с именем passenger_wsgi.py и следующим содержимым:

# -*- coding: utf-8 -*- import os, sys sys.path.insert(0, '/home/s/sbalak/sbalak.beget.tech/coolsite') sys.path.insert(1, '/home/s/sbalak/sbalak.beget.tech/ djangoenv/lib/python3.8/site-packages') os.environ['DJANGO_SETTINGS_MODULE'] = 'coolsite.settings' from django.core.wsgi import get_wsgi_application application = get_wsgi_application()

Здесь первый путь – путь к проекту, а второй – к виртуальному окружению. И создать файл .htaccess с содержимым:

PassengerEnabled On PassengerPython /home/s/sbalak/.local/bin/python3.8 #PassengerPython /home/s/sbalak/sbalak.beget.tech/venv/bin/python3.8

Кроме того, в пакете конфигурации в файле settings.py нужно указать разрешенный хост для работы фреймворка Django:

ALLOWED_HOSTS = ['sbalak.beget.tech', 'www.sbalak.beget.tech']

Не забываем сделать общий доступ к папке ~/.local, иначе сайт работать не будет! И в заключении в каталоге сайта sbalak.beget.tech создать подкаталог tmp и разместить в нем пустой файл restart.txt:

mkdir tmp; touch tmp/restart.txt

Все, теперь, обращаясь к странице http://sbalak.beget.tech должно появляться окно с тестовой страницей фреймворка Django: Вот, эта несколько запутанная и длинная последовательность шагов по установке интерпретатора языка Python, Django и связывания всего этого с конкретным сайтом. Опять же, запоминать все это не нужно. Можно сказать, что это справочная информация, которая обычно приведена в документации по каждому хостингу. Мы лишь последовательно следовали указанным шагам и получили ожидаемый результат. Но это был лишь первый этап по развертыванию нашего проекта. На следующем занятии мы перенесем наш сайт, создадим связи с БД и окончательно завершим процесс переноса проекта с тестового веб-сервера на реальный, боевой. Курс по Django: https://stepik.org/a/183363

�� Как установить Django на Beget: подробная инструкция для новичков

После выполнения этих шагов Django будет успешно установлен на вашем хостинге Beget. Удачи в создании своего проекта!

Детальный ответ

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

Добро пожаловать в нашу подробную статью о том, как установить Django на хостинг-провайдере Beget. В этой статье мы пошагово рассмотрим процесс установки Django на ваш аккаунт Beget и настроим его для разработки веб-приложений.

Шаг 1: Вход в панель управления

Первым шагом в установке Django на Beget является вход в панель управления вашего аккаунта Beget. Откройте ваш любимый веб-браузер и перейдите по адресу https://cp.beget.com. Введите ваш логин и пароль, чтобы войти в панель управления Beget.

Шаг 2: Создание виртуального окружения

После успешного входа в панель управления Beget, находим раздел «Дополнительные возможности» и выбираем «Модули Python». Здесь мы можем создать и управлять виртуальными окружениями для наших проектов Django.

Нажмите на кнопку «Создать виртуальное окружение». Введите имя вашего проекта и нажмите «Создать». Beget автоматически создаст виртуальное окружение для вас.

Шаг 3: Установка Django

После создания виртуального окружения перейдите на страницу его настроек. Обратите внимание на поле «Путь к исполняемым файлам Python». Это значение важно, так как при установке Django вам понадобятся доступ к пакетному менеджеру pip и интерпретатору Python.

Для установки Django откройте SSH-консоль, используя любое SSH-подключение по вашему выбору (например, PuTTY). Введите следующую команду, заменив на реальный путь к исполняемым файлам Python, полученный на предыдущем шаге:

pip install Django

Выполнение этой команды установит Django в ваше виртуальное окружение.

Шаг 4: Создание Django проекта

Теперь, когда Django установлен, вы можете создать свой первый проект Django. Вернитесь в панель управления Beget и найдите раздел «Файловый менеджер».

Выберите виртуальное окружение, которое вы создали на шаге 2, и откройте его. Нажмите на кнопку «Создать файл» и создайте файл с именем wsgi.py.

Откройте файл wsgi.py и вставьте следующий код внутрь файла:

import os from django.core.wsgi import get_wsgi_application os.environ.setdefault('DJANGO_SETTINGS_MODULE', '>.settings') application = get_wsgi_application()

Замените > на имя вашего проекта Django.

Шаг 5: Настройка базы данных

Теперь настало время настроить базу данных для вашего проекта. Вернитесь в панель управления Beget и найдите раздел «MySQL и PostgreSQL». Выберите «Создать базу данных» и задайте имя базы данных, имя пользователя и пароль.

Вернитесь к файлу настроек Django (settings.py) в вашем проекте и внесите следующие изменения:

DATABASES = < 'default': < 'ENGINE': 'django.db.backends.mysql', 'NAME': '>', 'USER': '>', 'PASSWORD': '>', 'HOST': 'localhost', 'PORT': '3306', > >

Замените >, > и > на соответствующие значения, заданные при создании базы данных.

Шаг 6: Запуск сервера Django

Теперь ваш проект Django настроен и готов к запуску на сервере Beget. Вернитесь в панель управления Beget и найдите раздел «Выделенный IP». Привяжите выделенный IP к вашему проекту.

Вернитесь к файлу wsgi.py и найдите строку:

os.environ.setdefault('DJANGO_SETTINGS_MODULE', '>.settings')

Замените > на имя вашего проекта Django.

Заключение

Поздравляю! Вы успешно установили Django на хостинг-провайдере Beget и настроили его для разработки веб-приложений. Теперь вы можете начать создание и развертывание своих Django проектов на Beget.

Если у вас возникают проблемы или вопросы, не стесняйтесь обратиться к документации Django или обратиться в службу поддержки Beget для дополнительной помощи.

Удачи в ваших будущих Django проектах!

Как выложить сайт на beget Python Django?

Другу нужно выложить сайт на Python Django.. Выложил, но он не работает.
Может beget его не поддерживает ?
я мог бы написать поддержу, но они оочень долго отвечают, а вы ребята быстрые)
да и вопрос не сложный))

  • Вопрос задан более трёх лет назад
  • 3210 просмотров

6 комментариев

Простой 6 комментариев

gscraft

Выложил, но не работает? А что именно не работает? Проблема конфигурации, не запускается, сайт не виден в сети? Если Вы по инструкции https://beget.com/ru/articles/webapp_python — то я бы посоветовал не мучиться, перейти на VPS с полным контролем и развернуть по инструкциям Django.

dimonchik2013

Dimonchik @dimonchik2013
maxim @m1rvi Автор вопроса

Gennady S, друг програет на пайтоне, хост просто мой) выложи коммент в ответы, отмечу, что верный, а то просто так отвечаешь) Спасибо!

maxim @m1rvi Автор вопроса

gscraft

m1 rvi, да необязательно, это и не прямой ответ, а совет. Всего доброго!
m1 rvi напишите мне в телеграмм помогу с деплоем @pyhammer
Решения вопроса 1
aimsavagejk @aimsavagejk

Зависит от того, какими услугами beget вы пользуетесь
Если это хостинг, то вот полное руководство для django от beget тык
Если это vps, то для тестов можно запустить через python3 manage.py runserver host:8080
Где host это IP адрес вашего VPS, при этом не забудьте добавить его в ALLOWED_HOSTS

Ответ написан более трёх лет назад
Комментировать
Нравится 1 Комментировать
Ответы на вопрос 0
Ваш ответ на вопрос

Войдите, чтобы написать ответ

django

  • Django
  • +1 ещё

Почему не работает редирект от виджета телеграмм?

  • 1 подписчик
  • 23 апр.
  • 84 просмотра

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *