Instalacja kuźni na docelowym serwerze ====================================== (zakładamy, że domyślny python jest w wersji przynajmniej 2.6) Zależności --------- moduł Apache'a mod_fastcgi (paczka libapache2-mod-fastcgi w Ubuntu) python-flup Zmiany w źródłach projektu -------------------------- Jedyne konieczne zmiany w projekcie (poza konfiguracją bazy opisaną w README) to: 1. Jeśli strona ma działać w podkatalogu domeny, to należy zmienić linijkę w settings.py z SITE_PREFIX = '' na SITE_PREFIX = '/kuznia' (na przykład). 2. Aby działało wysyłanie maili, pod warunkiem że na serwerze działa poczta (jeśli nie działa, to trzeba zainstalować jakiś serwer SMTP, np. postfix), wystarczy wykomentować linijkę EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend' w settings.py, stawiając przed nią # TODO * ustawienie domeny * edycja tematu listu zapraszającego Konfiguracja Apache'a ------------------- Trzeba włączyć moduł mod_rewrite. Potrzebny jest też moduł mod_fastcgi do apacza. Kiedy już go mamy, to dodajemy do konfiguracji apacza następującą treść (przy założeniu, że instalujemy kuźnię w podkatalogu kuznia skonfigurowanej domeny): LoadModule fastcgi_module modules/mod_fastcgi.so FastCGIExternalServer /foo/bar/forge.fcgi -host 127.0.0.1:3033 <Location /kuznia> RewriteEngine On RewriteRule ^/site/root/kuznia/(media.*)$ /baz/$1 [QSA,L,PT] RewriteRule ^/site/root/kuznia/(admin_media.*)$ /baz/$1 [QSA,L,PT] RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^/site/root/(.*)$ /baz/forge.fcgi/$1 [QSA,L] </Location> Legenda: /foo/bar/ to ścieżka w systemie plików do katalogu, który jest widoczny pod adresem http://domena/baz/ /site/root/ to główny katalog na dysku odpowiadający domenie (na chopinie to jest /var/www/chopin.ipipan.waw.pl/) W katalogu /foo/bar/ powinien być skrót do katalogu media w projekcie (i jeśli na serwerze działa selinux, to trzeba zrobić sztuczki, żeby skrót działał). Można też tam zrobić skrót lub skopiować katalog contrib/admin/media do /foo/bar/admin_media, jeśli chcemy korzystać z interfejsu admina (na razie chyba nie chcemy, ale i tak na chopinie działa). Uruchomienie serwera -------------------- Najprościej uruchamiać serwer następującym skryptem: #!/bin/bash HOME=/home/foobar/ kill `cat $HOME/pid` cd $HOME/lexeme_forge/ ./manage.py runfcgi method=threaded host=127.0.0.1 port=3033 pidfile=$HOME/pid Polecenie kill wywali niegroźny błąd, jeśli serwer nie był wcześniej uruchomiony, w przeciwnym razie go wyłączy przed ponownym włączeniem. W katalogu /home/foobar powinno być ściągnięte repozytorium projektu. Aktualizacja projektu --------------------- $ cd /home/foobar/lexeme_forge/ $ hg pull $ hg up $ ./manage.py syncdb $ ./manage.py migrate $ /home/foobar/start-server gdzie start-server jest skryptem z poprzedniego punktu.