elwin013's blog

kawałek sieci młodego geeka

Cześć, jestem Kamil! Witaj na moim blogu!

Django na LinuxPL.com

Ostatnio miałem za zadanie postawić na hostingu LinuxPL.com projekt napisany z użyciem frameworka Django. Niestety znalezienie jakiejś konfiguracji, która będzie działać jest utrudnione, a umieszczony FAQ na stronie usługodawcy jest przestarzały. Czyli dla potomnych i ciekawych – jak ja to skonfigurowałem. ;-)

Środowisko i wstępne ustawienia

Porządek należy utrzymać – założyłem, że wszystkie pliki projektu będę trzymał w katalogu ~/apps, ze względu na pewność, że na tym koncie będzie hostowany tylko on. Nic jednak nie stoi na przeszkodzie by dla każdego projektu stworzyć oddzielny folder ~/apps/projekt1, ~/apps/projekt2 itd. ;)

W tym samym katalogu trzymam templatki (w ~/apps/templates), a sam projekt (ustawienia, modele itp.) w katalogu o jego nazwie (np. ~/apps/nazwa_projektu)

Wszystkie pliki wysyłane przez użytkowników będą przechowywane w ~/apps/uploads, statyczne pliki w ~/apps/static, natomiast pliki panelu admina w ~/apps/media. Utworzyłem symboliczne linki z public_html do tych katalogów (uploads, site_media oraz media), umieszczając w każdym plik .htaccess o treści:

SetHandler None

aby pliki z tych katalogów były serwowane statycznie przez serwer www

public_html

Gdy przygotowaliśmy sobie już układ katalogów czas na główny .htaccess, który będzie umieszczony w public_html:

SetHandler python-program
PythonHandler django.core.handlers.modpython
SetEnv DJANGO_SETTINGS_MODULE nazwa_projektu.settings
PythonPath "['/usr/local/lib/python2.5', '/home/użyszkodnik/apps'] + sys.path"
#PythonDebug On
PythonDebug Off

Chciałbym szczególnie zwrócić uwagę na ścieżki – muszą być one bezwzględne. Inaczej po prostu nie zadziała ;-)

Na czas testów zaleca się ustawić opcje PythonDebug na On (jak i DEBUG na True w ustawieniach projektu). Po przetestowaniu należy je ustawić na Off (ze względów bezpieczeństwa).

Koniec

Mam nadzieję, że komuś się przyda ta krótka instrukcja. Jeśli jednak gdzieś popełniłem błąd, da się to zrobić lepiej, poprawniej czy też bezpieczniej – zwróćcie uwagę w komentarzach. :)


2 komentarze do “Django na LinuxPL.com”

Witam, jak sprawdzić jakiej wersji pythona aktualnie użyć? Czy jest konieczne uruchamianie komendy runserver poprzez ssh? Odpowiada: "Error: That port is already in use." Na stronie mam natomiast "Internal Server Error"

W takim przypadku musisz wybrać zapewne inny port. Niestety z Linuxpl korzystałem ostatnio jakoś 5 lat temu, więc raczej nie będę w stanie Ci pomóc bardziej :(

Zostaw komentarz