Installare apache 2.0.61 con mod_python 3.2.10 in NetBSD 3.1 con django dietro l’angolo
Friday, December 28th, 2007E’ facile facile ma me lo segno per usi futuri (occhio che io lo uso per sviluppare le mie applicazioni a casa, se sei un amministratore di sistema e ti serve per installare un server di produzione dovresti sapere da te come fare).
Installare da qualche parte, spesso su un computer, NetBSD (io ho la 3.1 per i386, se ti chiedi il perché la risposta è semplice: connessione a 56k).
Scaricare e installare il pacchetto di apache, python e mod_python, qualcosa del genere dovrebbe andare (come root):
$wget http://ftp.netbsd.org/pub/NetBSD/packages/3.1/i386/All/apache-2.0.61.tgz
$pkg_add apache-2.0.61.tgz
$wget http://ftp.netbsd.org/pub/NetBSD/packages/3.1/i386/All/python24-2.4.4.tgz
$pkg_add python24-2.4.4.tgz
$wget http://ftp.netbsd.org/pub/NetBSD/packages/3.1/i386/All/ap2-py24-python-3.2.10.tgz
$pkg_add ap2-py24-python-3.2.10.tgz
Seguire le istruzioni date in output dai vari pacchetti come, ad esempio, la creazione degli script di avvio ($cp /usr/pkg/share/examples/rc.d/apache /etc/rc.d/apache) e la configurazione del rc.conf.
Configurare apache (il file di configurazione è in /usr/pkg/etc/httpd/httpd.conf, se manca alcune copie si trovano in /usr/pkg/share/examples/httpd/*.conf):
- ricordarsi di settare Listen e ServerName;
- aggiungere “LoadModule python_module libexec/mod_python.so” come da manuale (se apache non lo trova basta farglielo trovare con “$cp /usr/pkg/lib/httpd/mod_python.so /usr/pkg/libexec/mod_python.so”);
- IMPORTANTE: aggiungere alla configurazione questa opzione “PythonOption mod_python.mutex_locks 4” per evitare il problema [emerg] (28)No space left on device: Couldn’t create accept lock (/var/run/accept.lock.16040) oppure modificare il kernel di NetBSD (approfondisci), se ve lo scordate apache non parte.
Per fare qualche test, sempre da manuale, aggiungere alla configurazione di apache le seguenti linee:
PythonPath "['/usr/pkg/lib/python2.4', '/usr/pkg/share/httpd/htdocs/test'] + sys.path"<Directory /usr/pkg/share/httpd/htdocs/test/> AddHandler mod_python .py PythonHandler mptest PythonDebug On AllowOverride FileInfo </Directory> <Location /mpinfo> SetHandler mod_python PythonHandler mod_python.testhandler </Location>
creare la directory /usr/pkg/share/httpd/htdocs/test ($mkdir /usr/pkg/share/httpd/htdocs/test) che poi starebbe dentro la document root di apache, creare il file mptest.py dentro la directory test come spiegato qui.
Riavviare apache ($apachectl stop e poi start) e puntare il browser su http://localhost/test/mptest.py o http://localhost/mpinfo. Si dovrebbe vedere l’hello word o una schermata con utili informazioni a seconda della pagina aperta. Nel caso qualcosa sia andato “a merda”, mi si passi il francesismo, un occhio ai log puo’ essere d’aiuto ($tail /var/log/httpd/error_log).
Se dopo aver letto questo post ti stai chiedendo cosa diavolo sia NetBSD, allora ti conviene leggere questo; se invece sei molto più arguto e ti chiedi cosa centra django con tutto questo, devo ammetterlo: per ora niente (è puro marketing