Встановлення і запуск 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-хостингу, і як усунути найбільш поширені помилки, що виникають в процесі. Якщо у вас залишились які-небудь питання – звертайтесь до нашої техпідтримки.