07 lut

Uruchomienie Python/Django w cPanel

Instalacja i uruchomienie Python/Django w cPanel

Tym razem opiszemy sposób na instalację aplikacji w języku Python na serwerze współdzielonym z panelem administracyjnym cPanel. Podobnie do Ruby, Node.js – Python jest bardzo popularnym językiem programowania wśród web developerów.

Właśnie dla programistów stron internetowych istnieje bardzo przydatny instrument – framework Django. Przykładowo przy pomocy tego framework`a zostały uruchomione takie serwisy jak Disqus, Mozilla, Pinterest i inne.

Wysyłanie plików aplikacji na serwer

Przed rozpoczęciem konfiguracji aplikacji na Python (Django) należy w pierwszej kolejności sprawdzić czy mamy dostęp poprzez SSH do serwera, w razie braku takiej możliwości – polecamy zgłosić się do działu wsparcia (domyślnie SSH jest wyłączony dla użytkowników hostingu SSD). Przy pomocy programów FTP wysyłamy pliki projektu na serwer, również można to zrobić poprzez Git lub Menedżer plików w cPanel.

W naszym artykule będziemy uruchamiać aplikację z publicznego repozytorium w GitHub, dla tego po prostu kopiujemy pliki przy pomocy git. Polecenia będziemy wpisywać w Terminalu, który jest dostępny w cPanel z poziomu przeglądarki.

cPanel - glowna

Do ładowania plików na serwer przy pomocy git, wykonujemy następne polecenie:

git clone https://github.com/tokibito/django-example-todo.git

terminal cpanel git

Pliki wylądują do folderu głównego użytkownika cPanel w django-example-todo.

django cpanel ssh

Zmieniamy nazwę folderu, ponieważ moduł w cPanel niestety nie wspiera nazw z myślnikiem. Robimy to przy pomocy:

mv django-example-todo django_example

Tworzenie aplikacji Python w cPanel

W cPanel przechodzimy do działu Oprogramowanie -> Setup Python App:

cpanel - setup python

Na tej stronie zobaczymy uruchomione wcześniej aplikacje. Dla utworzenia nowej klikamy Create Application:

cPanel - Python apps

Wypełniamy wszystkie pola wraz z wersją Python:

cPanel - Python nowa aplikacja

Następnie musimy zainstalować wszystkie zależności/pakiety. Możemy to zrobić poprzez cPanel lub Terminal. W panelu Setup Python Apps wchodzimy do aplikacji i na górze zobaczymy polecenie przy pomocy którego będziemy mogli zalogować się do środowiska wirtualnego dla zarządzania aplikacją poprzez Terminal. Na dole możemy wskazać ścieżkę do pliku z zależnościami aplikacji (requirements.txt):

cPanel - Python - konfiguracja aplikacji

Po dodaniu pliku requirements.txt od razu możemy uruchomić proces instalacji niezbędnych pakietów przyciskiem Run Pip Install.

Jeżeli domena, którą wybraliśmy dla aplikacji jest niedostępna online, dostaniemy poniższy błąd i instalacja pakietów nie zostanie skończona:

cPanel - Python - domena niedostepna

Jeżeli nie możemy skorzystać z domeny lub subdomeny, która jest widoczna w sieci, możemy skończyć instalacje zależności następnym poleceniem w terminalu:

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

Uruchamiać polecenie należy w folderze, gdzie znajduje się plik requirements.txt, po wejściu do środowiska wirtualnego (virtual environment).

cPanel - Terminal pip install

Należy zwrócić uwagę – w przypadku uruchomienia aplikacji na Django, pod czas instalacji tego modułu plik wsgi.py nadpisuje się. Jeżeli plik uruchomiający aplikację (Application startup file) ma taką samą nazwę, to będziemy musieli wgrać go na serwer jeszcze raz usuwając standardowy plik wsgi.py od Django.

Konfiguracja aplikacji Python

Następnie musimy dokończyć konfigurację aplikacji, np. utworzyć bazę danych i podłączyć ją w settings.py, i zmigrować dane do niej.

W naszym przypadku aplikacja wymagała wykonanie następnych poleceń:

migracja danych do bazy danych:

(myproject:3.6)[django@plskm31 myproject]$ python manage.py migrate

 

utworzenie konta administratora:

(myproject:3.6)[django@plskm31 myproject]$ python manage.py createsuperuser

 

Skopiowaliśmy również folder /home/rogcbqiz/virtualenv/django_example/myproject/todo/static do -> /home/rogcbqiz/public_html/static żeby pliki statyczne wyświetlały się poprawnie przy wejściu na stronę.

Często przy uruchomieniu aplikacji w Django na domenie zewnętrznej powstaje następny błąd:

python07-1024x356

Żeby naprawić to musimy w pliku konfiguracyjnym aplikacji settings.py zmienić linie:

ALLOWED_HOSTS = [] #tutaj może być wpisana domena albo same puste nawiasy

na:

ALLOWED_HOSTS = ['*'] #możemy po prostu napisać domeny, na których aplikacja może się uruchamiać lub wpisać gwiazdkę *, aby domena mogła być dowolna