CentOS – Nginx + PHP FastCGI

Hoy vamos a ver como poner en marcha un CentOS 5.5 con Nginx y PHP con FastCGI. Necesitaremos repositorios no oficiales, de entrada, lo adelanto 🙁

Suponemos que estamos en un entorno de producción con Apache 2/X mod_php. Vamos a ver como hacer la migración a Nginx y PHP FastCGI. Obviamente, convendría que el servidor no esté dando servicio en el momento de la operación. Para ver los motivos del cambio, leer este post.

1. Para Apache, quitar de arranque

# service httpd stop
# chkconfig --del httpd

2. Instalar Nginx
* necesitamos Yum
* conveniente instalar yum priorities
# yum install yum-priorities
* editamos prioridades de plugin
* instalamos repositorio EPEL
# yum install nginx
# chkconfig --level 235 nginx on

En este punto, debemos de tener instalado correctamente el servidor Nginx
# -bash-3.2# nginx -v
nginx version: nginx/0.8.53

3. Configuración FastCGI

Paquetes básicos que instalar

# yum -y install php-pear-Net-Socket php-pear php-common
php-gd php-devel php php-mbstring php-pear-Mail php-cli php-imap
php-snmp php-pdo php-xml php-pear-Auth-SASL php-ldap
php-pear-Net-SMTP php-mysql
# yum install spawn-fcgi
# wget -O /etc/init.d/php_cgi https://www.rubenortiz.es/scripts/php_cgi
# chmod +x /etc/init.d/php_cgi
# /etc/init.d/php_cgi start

-bash-3.2# /etc/init.d/php_cgi start
Starting php-cgi: spawn-fcgi: child spawned successfully: PID: 26284

Comprobamos que el daemon escucha en el puerto 9000
# netstat -tulpn | grep :9000

4. Arrancamos Nginx y configuramos

-bash-3.2# service nginx start
Starting nginx: [ OK ]
-bash-3.2#

Creamos un fichero php para comprobar el funcionamiento

# vim /usr/share/nginx/html/phpinfo.php

En este punto, todavía no debe de funcionar, Nginx no sabrá servir el php y nos lo devolverá como un archivo cualquiera. Para solventarlo, añadimos esto a la configuración de Nginx

location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}

Reiniciamos Nginx y ya deberíamos poder ver el archivo de información de PHP.

Links
https://traviszajkowski.me/2010/12/22/setup-nginx-with-spawn-fcgi-on-centos-5-5/

Leave a Reply

Your email address will not be published. Required fields are marked *