Установка, настройка и запуск Python/Django приложений на linux серверах с панелью управления cPanel

Аникей Александров 06.09.2017 03.08.2023 14864 на прочтение 11 минут

Возможности нашего виртуального хостинга на Linux серверах позволяют легко устанавливать и запускать любые Python-приложения, в том числе и хорошо известный Фреймворк Django. Предлагаемая нами инструкция по настройке среды выполнения Python-приложений и конфигурированию Django-проектов поможет Вам за короткое время получить полностью готовую среду для разработки и выполнения Ваших собственных проектов на основе языка Python. Желаем удачи!

Шаг 1 – Настройка среды выполнения для Python-приложений в cPanel

Для нашего виртуального хостинга в качестве основной панели управления используется cPanel. Это означает, что все первоначальные настройки нужно выставить именно в ней.  Для этого в адресной строке браузера нужно вставить ссылку на вход в панель управления хостингом, высылаемую всем клиентам сразу же после приобретения хостинг-пакета. Так, для нашего аккаунта, такая ссылка будет иметь следующий вид: https://cp6nl.hyperhost.ua:2083/. Соответствующее окно для входа в панель показано ниже.     

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

«Программное обеспечение», в котором находится инструмент «Настройка Python-приложений» (подчёркнут на скрине).

После перехода по указанной ссылке попадаем в окно, вид которого представлен ниже.

Здесь формируется список Python-приложений для аккаунта. В данном случае список пуст. Поэтому, начнём с того, что создадим своё первое приложение, кликнув по кнопке в правом верхнем углу – «СОЗДАТЬ ПРИЛОЖЕНИЕ». В результате, появится форма для указания основных параметров приложения, которую необходимо заполнить (см. скрин).

Рассмотрим правила заполнения каждого из полей формы.

В поле выбора версии языка Python выбираем нужную нам версию (желательно рекомендованную).

В поле «Корневой каталог приложения» вводим имя каталога, в котором будет размещено наше приложение на сервере – myapp.

В поле выбора URL-адреса приложения нужно выбрать доступный домен. В нашем случае, это ресурс web-site.com.

Следующие два поля связаны с запуском приложения и их нужно оставить пустыми. В этом случае система в автоматическом режиме создаст объект приложения и файл запуска приложения с именем passage_wsgi.py.

В поле «Файл логов Passenger» вводим имя файла ведения логов. Мы указали имя – log_file.

После завершения заполнения полей, кликаем по кнопке «СОЗДАТЬ» в правом верхнем углу. В результате, запускается приложение с заданными нами параметрами и выводится предыдущая форма в обновлённом виде, которая представлена ниже.

Мы видим, что появилась закладка с именем введённого нами домена для приложения – web-site.com. Оставленные нами ранее пустые поля формы теперь заполнены нужными значениями. В верхней части окна выведена ссылка для доступа в виртуальное окружение нашего Python-приложения:

source /home/websitec/virtualenv/myapp/3.9/bin/activate && cd /home/websitec/myapp

Эту ссылку необходимо скопировать и сохранить для дальнейшего использования, что мы и делаем. Ёё нужно будет вставить в командную строку, когда мы подключимся к приложению по ssh-протоколу.

Теперь переходим ко второму этапу – создание рабочего Django-проекта.

Шаг 2 – Создание и настройка Django-проекта с помощью SSH-протокола

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

В поле «Имя хоста / Host Name» вводим имя сервера или его IP-адрес, высылаемые всем нашим клиентам после заказа хостинга. В данном случае, это имя cp6nl.hyperhost.ua.

В поле «Порт / Port» выставляем порт доступа –  22.

С помощью переключателя «Тип соединения / Connection type» выбираем протокол SSH.

Для создания соединения кликаем по кнопке «Open» в нижней части окна. В результате, появляется окно терминала для ввода логина и пароля пользователя. После введения учётных данных нашего хостинг-аккаунта появляется доступ к командной строке терминала, как показано ниже. 

Активируем виртуальное окружение для нашего проекта с помощью команды, полученной ранее в панели управления аккаунтом. Введём её в командной строке терминала: 

$ source /home/websitec/virtualenv/myapp/3.9/bin/activate && cd /home/websitec/myapp

Мы видим, что приглашение командной строки изменилось. В нём обязательно должны присутствовать номер версии языка Python и имя директории для нашего проекта – myapp. Это является верным признаком того, что мы находимся в программной среде выполнения Python.

Приступим к установке Фреймворка Django. В команде установки приложения мы должны будем использовать специфичный для Python-приложений менеджер пакетов – pip, а также указать номер последней версии Фреймворка Django. Введём в терминале:

 $ pip install django==4.2.2  

Как видим, установка прошла успешно. Убедимся в этом, проверив установленную версию программы:

$ django-admin --version  

Таким образом, установлена версия 4.2.2.

Создадим проект с помощью следующей команды:

 $ django-admin startproject myapp ~/myapp  

Создадим ряд директорий, необходимых для хранения статических файлов. Для этого наберём в терминале:

 $ mkdir -p ~/myapp/templates/static_pages$ mkdir ~/myapp/static_files$ mkdir ~/myapp/static_media  

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

 $ nano ~/myapp/myapp/settings.py

Первое изменение: вставить имя нашего домена для параметра ALLOWED_HOSTS = [].

Второе изменение: заменить содержимое раздела TEMPLATES приведённым ниже кодом.

 TEMPLATES = [    {        'BACKEND': 'django.template.backends.django.DjangoTemplates',        'DIRS': [os.path.join(BASE_DIR,'templates')],

        'APP_DIRS': True,        'OPTIONS': {            'context_processors': [                'django.template.context_processors.debug',                'django.template.context_processors.request',                'django.contrib.auth.context_processors.auth',                'django.contrib.messages.context_processors.messages',   

         ],     

 },  

  },

]

Третье изменение: под строкой для статических адресов STATIC_URL добавить следующий код

STATIC_URL = '/static/'STATIC_ROOT = os.path.join(BASE_DIR, 'static_files') MEDIA_URL = '/media/'MEDIA_ROOT = os.path.join(BASE_DIR, "static_media")

Ниже приведены скрины обновлённого кода для всех трёх случаев.

Сохраним в файле изменения (ctrl+O, Enter) и выйдем из редактора (ctrl+X).

Удалим содержимое файла urls.py и вставим в него код, приведённый ниже.

$ nano ~/myapp/myapp/urls.py

Старое содержимое файла:

Код для вставки:

from django.contrib import admin
from django.urls import path, include
from django.conf import settings
from django.conf.urls.static import static
from django.conf.urls import url
from django.views.generic.base import TemplateView
urlpatterns = [    path('admin/', admin.site.urls),    url(r'^$', TemplateView.as_view(template_name='static_pages/index.html'), name='home'),] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
urlpatterns += static(settings.STATIC_URL,
document_root=settings.STATIC_ROOT)

Обновлённое содержимое файла:

Сохраним внесённые изменения и закроем файл.

Удалим всё содержимое из файла запуска приложения passenger_wsgi.py и внесём в него обновлённый код. 

$ nano ~/myapp/passenger_wsgi.py

Старое содержимое файла:

Новый код:

 


import os
import sys
 
import django.core.handlers.wsgi
from django.core.wsgi import get_wsgi_application
 
# Set up paths and environment variables
sys.path.append(os.getcwd())
os.environ['DJANGO_SETTINGS_MODULE'] = 'myapp.settings'
 
# Set script name for the PATH_INFO fix below
SCRIPT_NAME = os.getcwd()
 
class PassengerPathInfoFix(object):
    def __init__(self, app):
        self.app = app
def __call__(self, environ, start_response):
        from urllib.parse import unquote
        environ['SCRIPT_NAME'] = SCRIPT_NAME
        request_uri = unquote(environ['REQUEST_URI'])
        script_name = unquote(environ.get('SCRIPT_NAME', ''))
        offset = request_uri.startswith(script_name) and len(environ['SCRIPT_NAME']) or 0
        environ['PATH_INFO'] = request_uri[offset:].split('?', 1)[0]
        return self.app(environ, start_response)
# Set the application
application = get_wsgi_application()
application = PassengerPathInfoFix(application)

gh

 

 

Обновлённое содержимое:

Сохраним внесённые изменения и закроем файл.

Создадим базовый файл нашего Django-проекта с именем index.html. Для этого наберём в терминале:

$ nano ~/myapp/templates/static_pages/index.html

Внесём в файл следующие строки:

Welcome to the system Django!

Сохраним внесённые изменения и выйдём из редактора.

Далее, необходимо будет ввести ряд Python-команд для создания и настройки учётной записи суперпользователя для панели администрирования Фреймворка Django: 

$ python ~/myapp/manage.py migrate

$ python ~/myapp/manage.py createsuperuser

$ python ~/myapp/manage.py collectstatic

Здесь нужно будет указать логин, пароль и адрес электронной почты администратора системы.

Таким образом, создание и конфигурирование Django-проекта завершено. Для того, чтобы убедиться, что всё в порядке, нужно ещё раз зайти в Панель управления хостингом и выбрать инструмент «Настройка Python-приложений». Здесь можно увидеть созданное нами и уже запущенное приложение, как показано ниже. Перезагрузим его с помощью соответствующей команды в столбце «Действия» и выйдем из панели. 

Шаг 3 – Тестирование и администрирование созданного проекта

Для проверки работоспособности проекта достаточно в адресной строке браузера загрузить главную страницу домена, указанного при его конфигурировании. В нашем случае, это домен web-site.com. Результат показан ниже. Здесь отображается текст, который мы вели на главной странице нашего проекта. 

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

$ python ~/myapp/passenger_wsgi.py

В случае же успешного запуска проекта в браузере, можно перейти в администраторскую панель Фреймворка Django. Для этого необходимо к адресу введённого ранее домена через слеш  добавить имя admin. В нашем случае, такой адрес будет выглядеть следующим образом:

Web-site.com/admin

Введём его в браузере и посмотрим на результат.

В появившемся окне необходимо ввести логин и пароль суперпользователя, созданного нами ранее. И Вы в администраторской панели Django!  

Подытожим результаты. Мы сумели создать и сконфигурировать простейший сайт на Фреймворке Django, который обеспечивает загрузку домашней страницы домена и взаимодействие с базой данных SQLite, а также даёт возможность управлять проектом с помощью администраторской панели Django.

Купить хостинг


Close Screen
Аникей Александров
Статей: 41
Оцените статью:


Спасибо за отзыв
Рейтинг: 4.2 из 5 Голосов: 19