Установка и запуск Python/Django на cPanel

В данной статье мы рассмотрим возможность установки Python приложения на сервера с панелью управления cPanel. Как и Ruby, Python сейчас пользуется большой популярностью, и все больше и больше разработчиков стараются создавать web-приложения на Python.

Для веб разработчиков есть замечательный инструмент – специальный фреймворк написанный на Python – Django. Например, он используется в таких крупных и известных сайтах, как Instagram, Disqus, Mozilla, Pinterest и других ресурсах.

Загрузка файлов приложения на сервер

Перед началом настройки вашего приложения рекомендуем запросить в техподдержке доступ по SSH (по умолчанию он выключен). Далее удобным вам способом закачайте файлы проекта на сервер. Вы можете использовать диспетчер файлов в cPanel, FTP, git и т. д.

В нашем примере будем разворачивать приложение из некого публичного GitHub репозитория, потому клонируем файлы себе при помощи git. Команды в командной строке будем вводить при помощи встроенного SSH-клиента cPanel.

Для загрузки файлов при помощи git вводим команду и ждем окончания копирования:
git clone https://github.com/tokibito/django-example-todo.git

Файлы будут загружены в корневую директорию аккаунта cPanel в папку django-example-todo.

Это имя нужно изменить, поскольку модуль настройки Python-приложений не поддерживает имена файлов и директорий с дефисами. К примеру, переименуем папку так:
mv django-example-todo django_example

Создание приложения Python

В cPanel переходим в раздел Настройка Python приложений:

В этом разделе будут отображены существующие приложения, если они есть. Для нового приложения нажимаем Создать приложение

Создадим приложение с нужной нам версией Python:

Далее нужно установить зависимости. Это можно сделать в панели управления или в командной строке. В панели управления открываем редактирование приложения. Сверху будет выведена команда для входа в так называемое виртуальное окружение для управления через командную строку. Внизу можно указать путь к файлу со списком зависимостей requirements.txt

После добавления файла requirements.txt сразу запустим установку необходимых модулей кнопкой Запустить pip install.

Если доменное имя, на котором разворачивается приложение, по какой-то причине не работает с этого сервера, то установка зависимостей будет завершена с ошибкой.

Если у вас нет возможности использовать зарегистированный домен или направить ваш существующий домен на сервер, то установку необходимых модулей можно выполнить в командной строке.

[django@skm271 ~]$ source /home/django/virtualenv/django_example/myproject/3.6/bin/activate && cd /home/django/django_example/myproject
(myproject:3.6)[django@skm271 myproject]$ cd ..
(myproject:3.6)[django@skm271 django_example]$ pip install -r requirements.txt

Запускать команду нужно в папке, где находится файл requirements.txt, и предварительно войти в виртуальное окружение.

Обратите внимание! Если вы разворачиваете приложение на Django, то во время установки этого модуля файл wsgi.py перезаписывается. Если ваш «Файл запуска приложения» имеет такое же имя, то его нужно будет загрузить на сервер повторно с удалением стандартного файла wsgi.py от модуля Django.

Настройка приложения Python

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

Для нашего демонстрационного приложения мы выполнили такие команды в командной строке:

Миграция информации в базу данных:
(myproject:3.6)[django@skm271 myproject]$ python manage.py migrate

Создание учетной записи администратора:
(myproject:3.6)[django@skm271 myproject]$ python manage.py createsuperuser

Также мы скопировали папку /home/django/django_example/myproject/todo/static в папку /home/django/public_html/static для корректного отображения стилей и изображений в браузере. Также можно было создать символьную ссылку с первой директории во вторую, чтобы не копировать каждый раз файлы после их добавления. Данный способ организации статических файлов будет актуален не всегда — все зависит от того, как написано именно ваше приложение, где хранится статитка и т. д.

Вот так в итоге выглядит наше тестове приложение:

Часто при размещении Django-приложения на домене возникает такая ошибка:

Для ее решения нужно открыть файл настроек приложения settings.py и изменить строку

ALLOWED_HOSTS = [] #здесь может быть пусто или указан какой-то домен

на такую:

ALLOWED_HOSTS = ['*'] #здесь можно написать перечень доменов, по которым может открываться приложение; если указана *, то имя домена разрешается любое

Вывод

В этой статье мы постарались максимально подробно рассказать, как развернуть Python-приложение на нашем Linux-хостинге, и как устранить наиболее частые ошибки, возникающие в процессе. Если у вас остались какие-либо вопросы — обращайтесь в техподдержку.

Комментарии закрыты.