INSTALL
2.86 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
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.