Si bien hay cientos de artículos de cómo instalar y echar a andar la fórmula lighttpd + PHP + MySQL, la gran mayoría peca de estar apuntada a un público intermedio/avanzado, y la poca minoría es difícil de encontrar :P.
Es obvio que tanto un intermedio como un neófito de GNU/Linux puede compilar desde las fuentes aunque seguramente utilice algún gestor de paquetes, pero no que la media de novatos logre hacer andar (configurar correctamente) los programas que instale. Por eso voy a ir paso a paso por el camino de instalar y configurar la fórmula antes mencionada.
Primero vamos a instalar los servicios (web y de base de datos, respectivamente):
$ sudo aptitude install lighttpd $ sudo aptitude install mysql-server
Terminada la instalación de MySQL, se nos solicitará que ingresemos una clave para el usuario root mediante una caja de diálogo de ncurses ;)
Ahora vamos por el intérprete de PHP:
$ sudo aptitude install php5-cgi
En este momento, si nada grave ocurrió, tenemos andando a lighttpd y MySQL en nuestra PC. Pero hay que meter mano en unos archivos para que PHP funcione con ellos ;)
Abrimos el archivo de configuración de PHP ...
$ sudo gedit /etc/php5/cgi/php.ini
... y descomentamos la línea que dice "cgi.fix_pathinfo=0" y cambiamos ese 0 por un 1. quedando
cgi.fix_pathinfo=1
y guardamos.
Ahora tenemos que activar en lighttpd su módulo de FastCGI y configurar el intérprete de PHP, para lo cual...
$ sudo gedit /etc/lighttpd/lighttpd.conf
y buscamos la línea que diga "server.modules", ahí agregamos "mod_fastcgi", quedando algo como:
server.modules = (
"mod_access",
"mod_alias",
"mod_accesslog",
"mod_compress",
"mod_fastcgi",
# "mod_rewrite",
# "mod_redirect",
# "mod_status",
# "mod_evhost",
# "mod_usertrack",
# "mod_rrdtool",
# "mod_webdav",
# "mod_expire",
# "mod_flv_streaming",
# "mod_evasive"
)
Antes de cerrar el archivo, vamos a la opción "server.document-root" y cambiamos el /var/www/ por
server.document-root = "/home/TU_NOMBRE_DE_USUARIO/webs/"
así podemos trabajar tranquilamente en nuestro propio home sin lidiar con permisos de root a la hora de crear o modificar los archivos que vamos a hospedar ;) Y ahora sí, guarden los cambios y listo.
Ahora nos queda la siguiente linea de comandos
$ sudo cp /etc/lighttpd/conf-available/10-fastcgi.conf /etc/lighttpd/conf-enabled/
con la que copiaremos la configuración por defecto que trae lighttpd para operar con PHP. Si somos experimentados en el tema, podemos "enchular" (jaja) esas opciones... pero por ahora no es necesario ;)
Seguro te lo estabas preguntando... y es ahora! vamos a reiniciar lighttpd para que tome los cambios:
$ sudo /etc/init.d/lighttpd restart
Sí señores, ya está "todo" andando :P Para probarlo créen un "prueba.php" cuyo contenido sea como el siguiente y a navegar se ha dicho!
<? phpinfo(); ?>
Aclaración: dije que "ya está "todo" andando" porque legalmente está todo regio, pero seguramente nos hará falta el soporte de las GD y MySQL para PHP, como quizás otras librerías. Por eso debemos hace un...
$ sudo aptitude install php5-gd php5-mysql
... y volver a reiniciar lighttpd
$ sudo /etc/init.d/lighttpd restart
para que los cambios sean efectuados.
Para consultar el resto de librerías disponibles, y que quizás debamos instalar según nuestras necesidades, basta con
$ sudo aptitude search php5
Descargo: Al momento de escribir este artículo en los repositorios del Ubuntu Gutsy Gibbon se encuentran los siguientes paquetes: lighttpd 1.4.18-1ubuntu1; php5-cgi 5.2.3-1ubuntu6.2; mysql-server 5.0.45-1ubuntu3.1.
Ahora sí, hasta la próxima!