¡Hola Amigos!. ¿Nos zambullimos en aguas un poco más profundas?. ¡Por supuesto que si!. Y como siempre que existe un antecedente, Recomendamos lean, estudien y apliquen el post Nginx: Configuración Básica antes de continuar con éste.

NGINX-on-DebianLes traigo lo mínimo que debemos hacer para brindar un servicio de páginas web dinámicas mediante el Nginx y los scripts en PHP ejecutados mediante el FastCGI. Y como ya hemos visto un poco sobre éstos temas, ¡entremos en materia!.

Contenidos:

Servidor de base

El mismo que haremos como se indica en artículos anteriores:

Nombre web.amigos.cu
Dirección IP 192.168.10.20
Dominio amigos.cu

Comprobación del nombre FQDN del host

Debemos haber registrado en un DNS el nombre del host y su dirección IP. Vea: Artículos de Instalación y configuración de un DNS todo en 1, o consulte a su administrador de red. La comprobación la haremos ejecutando:

hostname  #nos devuelve el nombre del host, algo como "web"
hostname - f #nos devuelve algo como web.amigos.cu

Instalación de paquetes necesarios

aptitude install nginx php5-cli php5-cgi spawn-fcgi

Configuración y reinicio del Nginx

Creamos el directorio de trabajo

mkdir -p /srv/web.amigos.cu/htdocs
chown -R www-data.www-data /srv/web.amigos.cu/htdocs

Creamos el Host Virtual

Creamos el archivo /etc/nginx/sites-available/web.amigos.cu y definimos el nombre del host virtual; el directorio raiz de ese host; e indicamos que nuestro servidor web se conectará con el Fast-CGI mediante Sockets UNIX. El contenido Mínimo Inicial puede verlo aquí.

Habilitamos el host virtual recién creado y deshabilitamos el sitio por defecto

ln -s /etc/nginx/sites-available/web.amigos.cu /etc/nginx/sites-enabled/web.amigos.cu
rm /etc/nginx/sites-enabled/default

Si queremos habilitar nuevamente el sitio por defecto “default”, solo tenemos que rehacer su enlace simbólico desde sites-available hasta sites-enabled.

Creación del archivo /usr/bin/php-fastcgi con el siguiente contenido

#!/bin/bash
FASTCGI_USER=www-data
FASTCGI_GROUP=www-data
SOCKET=/var/run/php-fastcgi/php-fastcgi.socket
PIDFILE=/var/run/php-fastcgi/php-fastcgi.pid
CHILDREN=6
PHP5=/usr/bin/php5-cgi
/usr/bin/spawn-fcgi -s $SOCKET -P $PIDFILE -C $CHILDREN -u $FASTCGI_USER -g $FASTCGI_GROUP -f $PHP5

Hacemos ejecutable al archivo anterior

chmod +x /usr/bin/php-fastcgi

Inicio Automático del FastCGI

Garanticemos el inicio automático del servicio FastCGI mediante la creación del archivo /etc/init.d/spawn-fastcgi con el contenido final que puede ver aquí.

Hacemos ejecutable al recién creado archivo y lo ejecutamos para no tener que reiniciar el servidor

chmod +x /etc/init.d/spawn-fastcgi
update-rc.d spawn-fastcgi defaults
invoke-rc.d spawn-fastcgi start

Reiniciemos el servidor Nginx

invoke-rc.d nginx restart

Probando el PHP con FastCGI

Creamos el archivo /srv/web.amigos.cu/htdocs/index.php de la forma siguiente, y luego abrimos el navegador y apuntamos hacia la URL www.amigos.cu. Si todo fue bien, se nos mostrará la página de información del PHP.

echo "Nginx + FastCGI " > /srv/web.amigos.cu/htdocs/index.php
chown -R www-data.www-data /srv/web.amigos.cu/htdocs
chmod +x /srv/web.amigos.cu/htdocs/index.php

Por supuesto que toda la gran información que aparece en la página del PHP Version 5.3.3-7 o superior es muy útil para solucionar problemas o afinar el rendimiento del servidor.

¿Y después?

Seguro que tenemos alguna aplicación escrita en PHP. La copiamos hacia la raiz de nuestro host virtual; si es necesario volvemos a hacer al usuario www-data propietario de los archivos copiados, y probamos nuestra aplicación. También, si se consideran “Listos para Lucas”, pueden instalar su WordPress guiándose por el post Instalar WordPress con Lighttpd y FastCGI. 2da parte y final.

Como siempre, Recomendamos leer y estudiar la documentación del artículo anterior y cualquier otra que les ayude a trabajar con el Magnífico Nginx.

Y a propósito cabe preguntarse: ¿No es cierto que configurar servicios en modo texto es más rápido; consume menos recursos; se puede hacer desde una consola segura y remota mediante ssh, y es más fácil que en el modo gráfico?.  Free your mind!. Como le dijo Morpheus a Neo en Matrix. 🙂

¡Y hasta la próxima aventura, Amigos!

Plus: Ante palos, consulte el archivo de errores mediante tail -f /var/log/nginx/error.log o indicando la ubicación del archivo de errores que declaró en el host virtual. La mayoría de las veces se debe a una errónea declaración del propietario de los archivos del directorio de trabajo, o a una deficiente configuración en el archivo del host virtual. Empiece por ahí. Si los errores son demasiados para su gusto, empiece nuevamente desde cero. Seguro que Vale la Pena. 🙂