Начинаем развертывание Django-сайта на хостинге
Посмотрите как клиент отказался от Seo и потом все же вернулся к нам в seouspeh.ru — наглядный сред более 5 лет
А вот и через пару месяцев еще)), класс:
Новый кейс — за 2 последних года (с очень адекватным клиентом):
Посмотрите как мы в 10 раз уменьшили нагрузку на базу данных MySQL (перегруз был на 500% от лимитов)
Администратор и владелец сайта не несут ответственности за содержание и достоверность информации, размещенной в текстах сообщений и мнениях посетителей сайта.
Все сообщения и информация, размещенные посетителями сайта, являются выражением субъективного мнения, личной оценки лица, разместившего сообщение.
Мнение авторов комментариев может не совпадать с мнением администрации сайта.
Политика конфиденциальности и Правила форума
Сайтсоздание | А тут у Нас Вы можете Заказать продвижение сайтов | Сливки SEO
Работа с Django на хостинге Beget
Итак первым делом нужно в паели веб-сервера включить доступ по ssh для вашего аккаунта.
Далее подключаемся к нашему хостингу из терминала
попав на сервер переходим в docker — окружение
Прежде чем идти дальше, предполагается, что у вас уже установлен Python на хостинге. Как устанавливать цитировать руководство не буду, просто оставлю ссылку на него, где все подробно расписано. В моем случае, нужно было установить Python 3, что я и сделал.
На сервере уже по умолчанию установлен git, поэтому переходим в папку Django приложения, обновляем проект командой, разумеется предварительно нужно инициировать репозиторий git
А также копируем статику:
/.local/bin/python3.5 ./manage.py collectstatic
После завершения настройки окружения необходимо создать каталог tmp, где будет хранится файл restart.txt:
Пересоздание tmp/restart.txt применяет новые изменения в проекте.
На этом пожалуй все, Очень качественный и недорогой хостинг, всем советую!
Установка Django на виртуальном хостинге
На хостинге нужно создать сайт и прикрепить к нему домен. Если у вас нет хостинга или домена — рекомендую Beget сам им пользуюсь больше десяти лет.
Не забудьте разрешить подключение по FTP и SSH
Docker
Сначала необходимо подключиться к серверу по SSH ( инструкция от Beget )
Для этого понадобится имя пользователя на хостинге — это может быть как администратор, так и специально созданный ftp аккаунт.
Вместо username введите имя аккаунта у которого есть доступ к хостингу
Вместо website_url.com — ваш домен либо IP адрес
После того, как вы зашли на хостинг — нужно активировать виртуальное окружение
Для перехода в виртуальное окружение Docker нужно выполнить следующую команду:
ssh localhost -p222
После чего возможно придётся ещё раз ввести пароль для доступа к аккаунту.
Welcome to Ubuntu 18.04 LTS (GNU/Linux 4.9.132-0-beget-acl x86_64) * Documentation: https://help.ubuntu.com * Management: https://landscape.canonical.com * Support: https://ubuntu.com/advantage
Python
Проверить, установлены ли python3 и pip можно командами
python3 -V
pip3 -V
Python 3.7.0
pip 20.1 from /home/u/user/.local/lib/python3.7/site-packages/pip (python 3.7)
Проверить где находится python3 можно командой
Установка новой версии Python
Если Python не установлен или вам нужна более свежая версия — можно выполнить установку вручную
Установка Python
Подробнее про установку программ в Linux с помощью configure_make_make-install читайте здесь
/.local/include/ (docker) login@server:
Затем нужно в .bashrc данного аккаунта прописать $PATH до директории
/.local/bin/ или алиас для python3,
Проверим путь до python3
[0] $ which python3
Этот путь нам и нужно прописать в PATH. Отбросим только /python3
И перезапустить .bashrc
Виртуальное окружение
Часто полезно пользоваться виртуальным окружением. Создавать их можно разными способами, например с помощью:
- venv
- virtualenv
- anaconda
python3 -m venv venv_django
source venv_django/bin/activate
Обычно при активации виртуального окружения в терминале перед именем пользователя появляется называние окружения в круглых скобках.
Внутри контейнера вы скорее всего уже видите (docker) а название окружения может и не появиться.
Чтобы проверить перешли вы в окружение или нет выполнитеi
Как вы можете проверить здесь — до входа в окружение использовался другой Python
Либо перейдите в интерактивный режим
Выполните две команды
Они должны показать разный результат
Установка Django
Первым делом советую обновить pip
python3 -m pip install —upgrade pip
Затем непосредственно установить Django
python3 -m pip install django
python3 -m django —version
python3 -m pip list
Package Version —————— ——— asgiref 3.3.4 Django 3.2.4 pip 21.1.2 pytz 2021.1 setuptools 39.0.1 sqlparse 0.4.1 typing-extensions 3.10.0.0
Запуск первого проекта в Django
Переходим в директорию в которой нужно создать проект. Например в public_html.
django-admin startproject Project_Name
После удачного выполнения этой команды создаётся директория Project_Name
NB: Если вы пишите код в PyCharm эту директорию нужно кликнуть правой кнопкой мыши и выбрать Mark Directory as → Sources Root
Внутри Project_Name будет находится файл manage.py и ещё одна директория с таким же именем — Project_Name.
Внутри вложенной директории Project_Name находятся файлы
__init__.py
settings.py
urls.py
wsgi.py
WSGI расшифровывается как Web Server Gateway Interface.
Это стандарт взаимодействия между Python-программой, выполняющейся на стороне сервера, и самим веб-сервером, например Apache
Пример файла manage.py
#!/usr/bin/env python «»»Django's command-line utility for administrative tasks.»»» import os import sys def main (): «»»Run administrative tasks.»»» os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'Project_Name.settings') try : from django.core.management import execute_from_command_line except ImportError as exc: raise ImportError( «Couldn't import Django. Are you sure it's installed and » «available on your PYTHONPATH environment variable? Did you » «forget to activate a virtual environment?» ) from exc execute_from_command_line(sys.argv) if __name__ == '__main__': main()
passenger_wsgi.py
Нужно создать в корне сайта файл passenger_wsgi.py
cd /home/u/user/site.ru
touch passenger_wsgi.py
Для настройки passenger_wsgi.py понадобятся путь до Django и путь до проекта.
Путь до Django можно получить выполнив
python3 -c «import django; print(django.get_version()); print(django.__file__)»
Из этого пути нужно оставить
Посмотреть путь до проекта можно перейдя в родительскую директорию Project_Name (директорий Project_Name две нужна более высокого уровня) и выполнив pwd
Пример файла passenger_wsgi.py
# -*- coding: utf-8 -*- import os import sys from django.core.wsgi import get_wsgi_application sys.path.insert( 0 , '/home/u/user/site.ru/public_html/Project_Name' ) sys.path.insert( 1 , '/home/u/user/site.ru/venv_django/lib/python3.7/site-packages' ) os.environ[ 'DJANGO_SETTINGS_MODULE' ] = 'Project_Name.settings' application = get_wsgi_application()
Запуск приложения
В каждом проекте (project) обычно используется одно или несколько приложений (application)
Когда все приложения и конфигурации объединены они составляют веб-приложение.
applications + configurations = web application
Создаём первое приложение
python3 manage.py startapp first_app
Появится директория first_app в которой будут следующие файлы
settings.py
Переходим в директорию Project_Name/Project_Name
Редактируем файл settings.py
Добавляем домен, на котором Вы разворачиваете сайт в ALLOWED_HOSTS файла (из проекта) settings.py
Нужно добавить в список установленных приложений наше новое приложение first_app
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'first_app', ]
Запускаем/Перезапускаем сервер. О том как это сделать — читайте в следующей главе.
Запуск/Перезапуск сервера
Если перезапуск осуществляется с помощью скрипта выполняем (насколько я знаю, это актуально для хостингов Beget и dreamhost)
/site.ru [0] $ touch tmp/restart.txt
Возможно, на вашем хостинге запуск будет осуществляться с помощью runserver
поднять django на хосте beget
Если вы занимаетесь веб-разработкой на языке Python, вероятно вы знакомы с фреймворком Django. Django – это мощный инструмент для создания веб-приложений, который предоставляет разработчикам инструменты и функциональность для быстрого и эффективного создания сайтов. В этой статье мы рассмотрим, как поднять Django на хосте Beget, одном из популярных хостинг-провайдеров.
Beget предлагает широкий спектр хостинг-услуг, включая различные варианты виртуального хостинга, выделенные серверы и облачные решения. Для запуска Django на Beget вам понадобится веб-хостинг-аккаунт с поддержкой Python и возможностью установки необходимых пакетов.
Шаг 1: Создайте аккаунт на Beget
Первым шагом является регистрация учетной записи на Beget. После регистрации вы получите доступ к панели управления аккаунтом, где вы сможете настроить и управлять своим веб-хостингом.
Шаг 2: Установите Python и Django
После создания аккаунта вам необходимо установить Python и Django на ваш хостинг-аккаунт. Обратитесь к документации Beget или свяжитесь с их службой поддержки, чтобы узнать поддерживается ли Python и как его установить на вашем аккаунте.
После установки Python необходимо установить фреймворк Django. Для этого вам понадобится доступ к командной строке на хосте Beget. Подключитесь к хосту с помощью SSH или используйте встроенный интерфейс командной строки Beget.
Настройте виртуальное окружение, в котором будет работать ваше Django-приложение. Создайте и активируйте виртуальное окружение следующими командами:
После создания и активации виртуального окружения установите Django следующей командой:
Шаг 3: Создайте Django-приложение
Теперь, когда у вас установлен Django, вы можете создать новое Django-приложение. В командной строке выполните следующую команду:
Это создаст новую директорию с именем «myproject», содержащую файлы и структуру проекта Django.
Шаг 4: Настройте базу данных и статические файлы
Перед развертыванием приложения на хостинге Beget необходимо настроить базу данных и статические файлы.
Beget предоставляет возможность использовать различные типы баз данных, включая MySQL и PostgreSQL. Посмотрите документацию Beget, чтобы узнать, как создать базу данных и получить необходимые учетные данные для подключения к ней.
Измените настройки базы данных в файле «settings.py» вашего Django-приложения в соответствии с данными, предоставленными вашим хостинг-провайдером.
Кроме того, вам необходимо настроить путь к статическим файлам в файле "settings.py". Убедитесь, что ваше приложение будет правильно обрабатывать статические файлы, добавив следующие строки:
Шаг 5: Создайте файлы WSGI
Для запуска Django на хосте Beget вы должны создать файлы WSGI (Web Server Gateway Interface), который будет рассматривать веб-сервер и взаимодействовать с вашим Django-приложением.
Создайте новый файл в корневой директории вашего Django-проекта с именем «wsgi.py». Откройте этот файл и добавьте следующий код:
Шаг 6: Настройте веб-сервер
Теперь вам необходимо настроить веб-сервер для работы с вашим Django-приложением.
Настройка веб-сервера на хосте Beget может различаться в зависимости от используемого плана хостинга и конфигурации. Рекомендуется обратиться к документации Beget для получения инструкций по настройке Apache или Nginx для поддержки Python и Django-приложений.
После настройки веб-сервера разместите файлы вашего Django-приложения на хостинге Beget, включая файлы и директории проекта, файлы WSGI, статические файлы и медиа-файлы.
Шаг 7: Запустите ваше Django-приложение
После завершения всех предыдущих шагов ваше Django-приложение должно быть готово для запуска на хосте Beget. Перейдите к вашему доменному имени или IP-адресу, чтобы увидеть ваше приложение в действии.
Если у вас возникнут проблемы или ошибки при запуске вашего Django-приложения на хосте Beget, рекомендуется обратиться к документации Beget или связаться с их службой поддержки для получения помощи.
Вывод
Поднять Django на хосте Beget возможно с помощью нескольких простых шагов. Установите Python и Django на ваш хостинг-аккаунт, создайте Django-приложение, настройте базу данных и статические файлы, создайте файлы WSGI и настройте веб-сервер. После выполнения этих шагов ваше Django-приложение будет успешно работать на хосте Beget.