Django pod serwerem cherokee
Django i Cherokee z wykorzystaniem SCGI
Celem będzie skonfigurowanie cherokee do obsługiwania projektu django za pomocą protokołu SCGI oraz dostarczanie statycznych plików (media files)- Do połączeń FastCGI/SCGI zainstaluj pakiet flup:
easy_install flup
- Następnie pobierz plik django-scgi.py z tej strony i umieść go w katalogu projektu.- Jeżeli nie masz zainstalowanego cherokee to zrób to teraz. Zwróć uwagę że obsługa protokołów SCGI/FastCGI może być włączona/wyłączona przy konfiguracji/kompilacji. By jawnie zadeklarować obsługę obu protokołów wystarczy polecenie:
./configure --enable-scgi --enable-fcgi
- W przypadku gentoo:
USE="fastcgi scgi" emerge cherokee
- W /etc/cherokee znajdują się pliki konfiguracyjne serwera. Edytuj /etc/cherokee/sites-enabled/default (jeżeli nie ma to utwórz symlink z default z sites-available).- Znajdź:
DocumentRoot /var/www/localhost/htdocs
- Zamień na ścieżkę do katalogu z projektem django, np. /home/user/djangoblog/- Znajdź:
UserDir public_html { Directory / { Handler common }
UserDir public_html { Directory / { Handler scgi { Server localhost:8080 } }
- Znajdź:
Directory / { Handler common }
Directory /site_media/ { Handler common } Directory /media/ { Handler common }
- By utworzyć symlink do plików statycznych panelu admin django wykonaj w katalogu projektu:
ln -sf /usr/lib/python2.4/site-packages/django/contrib/admin/media media
- Sprawdź czy w twoim systemie django znajduję się pod tą samą ścieżką.- Uruchom serwer WSGI:
python django-scgi.py --projects=/home/user/projektDjango/ --settings=settings --host=localhost --port=8080
Gdzie -projects=/home/user/projektDjango/ to ścieżka do katalogu z projektem django, -settings=settings określa plik konfiguracyjny (w urls.py powinieneś mieć: ROOT_URLCONF = 'urls'), --host i --port to host i port na jakim serwer WSGI będzie działał.- Uruchom serwer Cherokee. W zależności od dystrybucji będzie to:
/etc/cośtam/cherokee start /etc/init.d/cherokee start (gentoo) /etc/rc.d/cherokee start (arch)
Porządkowanie cherokee
Możesz usunąć zbędne wpisy (np. odnoszące się dp PHP, /cgi-bin itp.).django-scgi.py
Gdyby podany w tekście adres nie działał oto kod potrzebnego pliku:
RkBlog