jueves, 14 de diciembre de 2006

Pylons

Este es un nuevo intento por servir archivos wml (formato para páginas web en el celular), generados dinámicamente tras haber obtenido cierta información vía servicios WAP. SOAPpy ya resolvió parte del problema.

Ahora necesito un caché. Fue algo triste encontrarme con que tener un caché usando Tomcat, es tan trivial como declarar una variable estática, pues la aplicación se queda en memoria un rato antes de que se la lleve el recolector de basura. Desafortunadamente, en python no es tan fácil... a menos que se utilize algún marco de trabajo.

Aquí entra pylons.

Afortunadamente, en alguna entrada anterior ya mencioné easy-install. Aquí ¡es una maravilla! (Estando conectado a la red) teclear "easy_install Pylons" tal y como se indica en http://pylonshq.com.

El siguiente paso es configurar Apache. Para tenerlo todo a la mano incluyo la liga al archivo con mod_fastcgi. [Si se trabaja con Apache 2.2.3 hay que aplicar un parche (renombrar Makefile.AP2 a Makefile, descargar dentro del directorio de mod_fastcgi y ejecutar patch -p0 <mod_fastcgi-2.4.2-httpd-2.2.3.patch)] (mod_rewrite ya estaba en apache). Todas las instrucciones restantes se encuentran en el sitio de pylons.

Ahora, como el servidor donde quiero colocar todo esto utiliza Plesk, configurarlo tiene su chiste.
Mod_python ya era cargado por /etc/httpd/conf.d/python.conf

Agregué la directiva:

LoadModule fastcgi_module modules/mod_fastcgi.so

en /etc/httpd/conf/httpd.conf.

LoadModule rewrite_module modules/mod_rewrite.so ya estaba ahí.

Ojo: el código siguiente debe ir en httpd.conf fuera de cualquier otra directiva (Virtual Host, Directory, etc.) y después de que se hayan designado el usuario y el grupo de apache.


FastCgiIpcDir /tmp/fcgi_ipc/
AddHandler fastcgi-script .fcgi

Además, si el usuario y grupo de apache son, por ejemplo, http y http, /tmp/fcgi_ipc/ (o cualquier otro que se use) deben ser asignado a ese usuario y grupo (chown, chgrp, chmod 700).
De lo contrario se pueden obtener el siguiente error:

Starting httpd: Syntax error on line 200 of /etc/httpd/conf/httpd.conf:
FastCgiIpcDir /tmp/fcgi_ipc: access for server (uid -1, gid -1) failed: read not allowed

En mi caso, decidí colocar los archivos dentro de un directorio de un subdominio que, además, no era el direcctorio raíz. Para incluir instrucciones específicas al dominio, las instrucciones detalladas se dan en la documentación de plesk.

En resumen, crear vhost.conf con las especificaciones dentro de subdominio/conf y ejecutar:

/[path to plesk, ej: usr/local/psa]/admin/sbin/websrvmng --reconfigure-vhost --vhost-name=fulanito.com

No hay comentarios.: