Z notatnika webmasterki

16 Lis, 2017

Aplikacja Django na serwerze MyDevil

Zamieszczony przez: Joanna w: Django

Miałam zamiar napisać sobie notatkę z instrukcją tworzenia projektu w Django. Doszłam jednak do wniosku, że takie instrukcje łatwo można znaleźć w sieci, nawet po polsku. Zamiast tego napisałam instrukcję instalowania projektu Django na hostingu wykupionym w MyDevil. Oczywiście wszystkie (albo prawie wszystkie) informacje znajdują się w dokumentacji udostępnionej przez MyDevil. Jednak dla mnie, kompletnie początkującego adepta Pythona, to wszystko nie było ani jasne ani łatwe do przetrawienia za pierwszym razem, stąd decyzja. Zatem do dzieła.

Odpowiednia konfiguracja usługi

W pierwszej kolejności należy ustawić, jeśli się tego nie zrobiło wcześniej, odpowiednią opcję umożliwiając sobie tym samym instalację własnego oprogramowania. Procedura opisana jest szczegółowo w dokumentacji MyDevil pod hasłem Binexec.

Środowisko wirtualne

Instalacja jakiejkolwiek aplikacji Python na tych serwerach wymaga stworzenia środowiska wirtualnego. Zgodnie z sugestią należy wpierw stworzyć osobny katalog .virtualenvs służący do przechowywania wszystkich utworzonych przez użytkownika wirtualnych środowisk. W tym celu należy zalogować się przez SSL na swój serwer i wykonać następującą instrukcję:

$ mkdir /usr/home/login/.virtualenvs

Po utworzeniu katalogu można stworzyć wewnątrz niego środowisko wirtualne. W tym celu w konsoli należy wykonać następujące instrukcje:

$ cd /usr/home/login/.virtualenvs
$ virtualenv nazwa_środowiska -p /usr/local/bin/python3.4

Ja celowo wymusiłam utworzenie środowiska opierającego się na wersji 3.4 Pythona. Jeśli wszystko przebiegnie pomyślnie i nie pojawią się żadne błędy można aktywować środowisko wirtualne:

$ source /usr/home/login/.virtualenvs/nazwa_środowiska/bin/activate

Django

Teraz można już instalować dodatkowe pakiety min. framework Django. Ja postanowiłam wykorzystać ostatnią stabilną wersję w związku z tym wykonałam komendę:

(nazwa_środowiska)$ pip install Django==1.11.7

Warto zwrócić uwagę, że po aktywacji środowiska zmienia się znak zachęty.

Strona WWW

Teraz najwyższa pora by panelu administracyjnym serwera stworzyć stronę WWW typu Python, czego nie będę opisywać dokładnie gdyż jest to dość dobrze opisane w dokumentacji. Oczywiście podczas tworzenia tej strony, zgodnie z zaleceniem należy jako źródło podać katalog zawierający nasze środowisko wirtualne. W tym celu wybieramy wpierw opcję „Inny plik wykonywalny”:

MyDevil strona WWW typu Python

A następnie wskazujemy w katalogu naszego środowiska wirtualnego plik /bin/python:

MyDevil strona WWW typu Python

Po tej operacji na serwerze w katalogu domains pojawi się podkatalog twoja.domena.pl przechowujący pliki utworzonej strony. Wewnątrz znajduje się min katalog pubic_python, domyślny katalog w którym umieszcza się pliki strony WWW typu Python.

Projekt Django

Teraz już wreszcie można stworzyć aplikację. W pierwszej kolejności należy wyczyścić domyślny katalog pubic_python wykonując instrukcję:

(nazwa_środowiska)$ cd /usr/home/login/domains/domena/
(nazwa_środowiska)$ rm -rf public_python

Następnie można już stworzyć nowy projekt oparty o zainstalowaną wcześniej w wirtualnym środowisku wersję Django:

(nazwa_środowiska)$ django-admin.py startproject public_python

Kolejnym krokiem jest konfiguracja modułu Phusion Passenger, który jest odpowiedzialny za uruchomienie aplikacji Django. W tym celu, w katalogu projektu (public_python) należy utworzyć plik passenger_wsgi.py o następującej zawartości (odpowiedniej dla wersji Django 1.7 i wyższych):

import sys, os

sys.path.append(os.getcwd())
os.environ['DJANGO_SETTINGS_MODULE'] = "nazwa_projektu.settings"   

from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()

Po tej operacji warto zrestartować stronę w panelu administracyjnym lub poprzez polecenie:

(nazwa_środowiska)$ devil www restart domena

Konfiguracja hosta

Od tego momentu aplikacja w zasadzie powinna już działać i po wpisaniu w przeglądarce twoja.domena.pl wyświetlać taki panel:

projekt Django

Niestety prawdopodobnie zobaczysz wpierw komunikat:

 
DisallowedHost at / Invalid HTTP_HOST header: 'twoja.domena.pl'. You may need to add u'twoja.domena.pl' to ALLOWED_HOSTS.
n your project settings.py file,set ALLOWED_HOSTS

W takim wypadku należy odszukać plik settings.py w katalogu projektu i edytować zawartość tablicy ALLOWED_HOSTS dodając następującą informację:

ALLOWED_HOSTS = ['twoja.domena.pl', 'localhost', '127.0.0.1']

Teraz już wszystko powinno działać jak należy. Można przystępować do tworzenia aplikacji, o ile oczywiście traktuje się tę instalację jako serwer deweloperski. Niebawem napiszę jak zainstalować gotową aplikację stworzoną w frameworku Django na serwerze produkcyjnym na MyDevil.

2 komentarze na "Aplikacja Django na serwerze MyDevil"

1 | batman

19. listopada 2017 o 10:46 am

Avatar

Długo szukałem hostingu pod Django i w końcu sprawdziłem DigitalOcean. Od tamtej pory nie zastanawiam się nad wyborem hostingu. Jeśli nie chcesz się dłubać samodzielnie w konfigurowanie serwera, możesz skorzystać z gotowego dropleta z Django. Jeśli lubisz się bawić, możesz sama wszystko postawić. Co więcej, DigitalOcean na swojej stronie ma wiele poradników dotyczących instalacji i używania Pythona/Django.

Co do samego Pythona, warto zacząć używać pipenv (https://docs.pipenv.org). Jest to połączenie virtualenv oraz pip w jednym narzędziu. Daje o wiele większe możliwości niż wspomniane narzędzia używane osobno.

2 | Joanna

19. listopada 2017 o 2:07 pm

Avatar

Mój wybór padł na MyDevil bo potrzebuję serwera nie tylko do Pythona i Django. Będę jednak pamiętać o Twoich sugestiach.

Formularz komentarza

Grudzień 2017
P W Ś C P S N
« Lis    
 123
45678910
11121314151617
18192021222324
25262728293031

Archiwa

About

Moje notatki z pracy

Subskrypcja

Wprowadź swój adres email aby zaprenumerować ten blog i otrzymywać powiadomienia o nowych wpisach przez email.

Dołącz do 28 pozostałych subskrybentów

Tematy

%d bloggers like this: