Il seguente howto richiede un sistema Linux 32 bit con istallato python2.5, i relativi file per lo sviluppo e gli header della libxml2.
Su un sistema Debian i package saranno
python2.5 python2.5-dev libxml2-dev
L'obiettivo e' effettuare in locale un deploy di pinax su uWSGI e duplicarlo senza alcuna modifica sul vostro account Unbit
La prima sequenza dei comandi e' la seguente:
wget http://downloads.pinaxproject.com/Pinax-0.7.2-bundle.tar.gz tar zxvf Pinax-0.7.2-bundle.tar.gz cd Pinax-0.7.2-bundle python2.5 scripts/pinax-boot.py ~/pinax cd ~/pinax ./bin/pinax-admin clone_project social_project pinaxsite
a questo punto avremo nella nostra home una directory "pinax" contenente il nostro progetto e tutti i moduli python necessari.
Di default pinax utilizza sqlite. Trattandosi di un database engine basato su file, i path possono diventare un vero incubo.
Con la seguente sequenza di comandi creeremo il nostro db all'interno della directory pinax/pinaxsite, ma prima di andare online dovremo spostarlo nella home, vedremo poi perche'.
cd pinaxsite/ ../bin/python manage.py syncdb cd ..
ora siamo di nuovo all'interno della directory pinax. Possiamo procedere all'istallazione di uWSGI
./bin/pip install http://projects.unbit.it/downloads/uwsgi-latest.tar.gz
ebbene si, tutto qui
Ora procediamo all'esecuzione di uWSGI, se all'avvio non dara' errori saremo pronti ad andare online.
cd .. cp pinax/pinaxsite/dev.db . ./pinax/bin/uwsgi -s :3031 -H pinax --wsgi-file pinax/pinaxsite/deploy/pinax.wsgi
(se la porta 3031 e' gia' in uso modificatela senza problemi o usate un socket UNIX)
come vedete abbiamo spostato dev.db nella home prima di lanciare uWSGI poiche' django/pinax cerchera' il file dev.db nella directory corrente.
Se uWSGI parte senza problemi andate sul vostro client ftp e caricate nella docroot del vostro dominio (quindi /www/nomedominio) la directory pinax e il file dev.db.
Ora andate sul pannello delle opzioni del dominio e specificate semplicemente:
upstream: on
upstream_cmd: pinax/bin/uwsgi -H pinax --wsgi-file pinax/pinaxsite/deploy/pinax.wsgi
Come vedete la linea di comando e' la stessa dell'ambiente locale fatta eccezione per la mancanza del socket che viene impostato automaticamente dall'ambiente Unbit.
La procedura e' stata testata su una Ubuntu Karmic x86 (32bit quindi)
Quando caricate i file via ftp, accertatevi che il vostro client rispetti i permessi, in particolare i file dentro pinax/bin devono avere il permesso 750. (quindi eseguibili)
Ovviamente modificate il wget iniziale per la versione di Pinax che preferite.
Prima di andare in produzione 'carrozzate' uWSGI (numero di processi, monitoring...) e associate lo stderr a un file dedicato (altrimenti di default verra' usato lo stderr_log nella home)
Sempre prima di andare in produzione mappate /site_media/static al percorso fisico dei file statici (con la direttiva docroot_mountpoints) , ed elencate /site_media/static in upstream_off. In questo modo i file statici saranno serviti dal webserver e non da uWSGI.
La procedura richiede python2.5 (la versione di default presente sui server Unbit), se avete nel vostro account Unbit una versione customizzata di python l'howto varia leggermente ma siamo sicuri che i pythonisti che usano ambienti personalizzati non hanno bisogno di howto passo passo
HowtoPinax (l'ultima modifica รจ del 2010-07-22 14:51:01, fatta da RobertoDeIoris)