INSTALL 2.86 KB
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.