Como instalar Cherokee + Php + Mysql + Django + UWSGI en Debian 5 lenny
Bueno, después de tanta instalación de Cherokee y Django últimamente debido a tanta mudanza de server me decidí hacer una guía de cara si me olvido.
*Nota
¿Que es Cherokee?
Es un servicio de servidor web, de la misma forma que lo es Apache, pero siguiendo la nueva moda de hacerlos mas ligeros que este, como lo son por ejemplo lighthttpd o nginx, La particularidad de Cherokee es que tiene una interfaz de administración web increiblemente simple y eficiente.
Que veremos
Como dejar un servidor listo para tanto hostear webs en php, como en django. Para ello instalaremos Cherokee desde los fuentes (1.08)
Instalando Cherokee
Antes de nada tendremos que instalar gettext, rrdtool (para las estadisticas, es opcional) y python (este ultimo es necesario para utilizar el administrador de cherokee).
# apt-get install gettext python rrdtool
Una vez hecho esto, nos vamos a /tmp/, descargamos la ultima versión estable de cherokee, y la compilamos. (la config es la recomendada, podeis verlo aquí)
# cd /tmp/
# wget http://www.cherokee-project.com/cherokee-latest-tarball
# tar -xvf cherokee-1.0.8.tar.gz
# cd cherokee-1.0.8
# ./configure —localstatedir=/var \
—prefix=/usr \
—sysconfdir=/etc \
—with-wwwroot=/var/www
# make
# make install
Con esto ya tenemos Cherokee instalado pero, para arrancarlo y pararlo tenemos que copiarnos el script de init.d, arreglar los permisos y si queremos meterlo en el arranque:
# cp contrib/cherokee /etc/init.d/
# chmod +x /etc/init.d/cherokee
# update-rc.d cherokee defaults
Ahora ya podemos arrancar cherokee sin problemas
# /etc/init.d/cherokee start
Ahora navegando a la ip de nuestro equipo deberíamos ver algo similar a esto.

Instalando mysql
Es bastante trivial.
#apt-get install mysql-server mysql-client
Instalando php
#apt-get install php5-cgi
Además he visto que recomiendan añadir esto al fichero de configuración de php.
# nano /etc/php5/cgi/php.ini
y Añadir si no está: cgi.fix_pathinfo = 1
Y con esto deberíamos tener el tipico LAMP pero con cherokee (¿LCMP?).
Probando php.
Podemos hacer una prueba, creamos un fichero php con
<?php
phpinfo();
?>
Y lo guardamos como test.php en /var/www/.
Si lo ejecutamos tal cual vereis que solo nos manda el fichero, no ejecuta php, eso es debido a que no le hemos dicho a cherokee que utilice php. Por eso ahora arrancaremos la interfaz administrativa de cherokee.
# cherokee-admin -b
Cada vez que arranquemos el administrador nos generará una clave nueva que nos mostrará por pantalla, en mi caso:
User: admin
One-time Password: JNggDTRSRHonbx4a
El -b es para que se nos enganche a la ip publica.
Para entrar al administrador simplemente tendremos que ir a la ip del servidor con el puerto 9090. Ej 127.0.0.1:9090, al entrar nos pedira el usuario y clave y una vez autentificados nos saldrá algo estilo esto.
A que mola eh?
Ahora nos vamos a la pestaña de virtual servers (superior derecha), hacemos clic en default (a la izquierda) y damos clic en el tab de behavior. Veremos algo así:
Ese listado que vemos son los comportamientos/acciones que hará el servidor segun el tipo de petición que tenga. Podemos configurar casi cualquier cosa, desde mandarlo a un interprete como python o hacer una acción determinada según la geolocalización de la ip del cliente.
Vamos a añadir una norma, de que nos mande los ficheros al interprete de php.
Para ello hacemos clic en el boton de rule management. Ahora a la izquierda nos cambió el menu de virtualhosts por el de los comportamientos. Que habíamos visto antes.
Le damos al botón new y nos aparecerá un asistente, buscamos php (esta en languages) y simplemente seguimos el asistente (solo hay que darle a create).
Una vez hecho se nos cierra y se nos añade la regla de php en el menu de la izquierda.
Ya está, ni configuraciones extrañas ni nada. Dos clicks de ratón y fuera. Ahora solo nos falta darle clic a save (para guardarlo) y hacer un “graceful restart”.
Cargamos nuestra página index.php y voila!
Instalando Django
Yo personalmente siempre instalo django directamente desde svn por lo que antes de nada necesitaremos el cliente svn
#apt-get install subversion
Ahora para instalar django simplemente
#cd /tmp/
#svn co http://code.djangoproject.com/svn/django/trunk/
#cd trunk
#python setup.py install
Instalando UWSGI
Uwsgi es un servidor wsgi que funciona con varios servidores http, como light o nginx, es bastante similar a mod_wsgi de apache, instalarlo es fácil pero tiene sus trucos si nunca se ha instalado.
Antes de nada necesitamos los python-dev y libxml2-dev para instalarlo. así que apt
#apt-get install python-dev libxml2-dev
nos bajamos uwsgi, lo compilamos y lo copiamos a sbin con los permisos correctos
# wget http://projects.unbit.it/downloads/uwsgi-0.9.6.5.tar.gz
# tar xvf uwsgi-0.9.6.5.tar.gz
# cd uwsgi-0.9.6.5
# make
# cp uwsgi /sbin/
# chmod +x /sbin/uwsgi
Y voila. Si queremos configurar un proyecto de django os recomiendo que os leáis el cookbook de la documentación o veáis el screencast, es súper sencillo y fácil.


