martes, 19 de abril de 2011

Cómo instalar Nginx y PHP-FPM en Ubuntu 10.10

Voy a hacer una breve anotación a este respecto, ya que es un tema que he tenido que buscar un par de veces.

En realidad, se trata de una tarea que, a día de hoy, es sencilla. Hace meses, no había repositorios oficiales para PHP-FPM, y había que andar compilándolo o bien usar repositorios alternativos. No obstante, desde la versión 10.10 de Ubuntu, PHP-FPM se encuentra en los repositorios oficiales. Sólo hay que hace algún pequeño ajuste en la configuración, que veremos a continuación.

En nuestros proyectos ya llevamos tiempo confiando en la dupla Nginx + PHP-FPM, con buenos resultados. Apache(2) pronto será cosa del pasado.

1. Instalamos Nginx:

apt-get install nginx


No será la última versión, pero nos valdrá. Si queremos la última (Nginx acaba de lanzar su versión 1.0) debemos instalarla desde la web oficial.

2. Instalamos PHP-FPM:

apt-get install php-fpm


PHP-FPM se ejecuta como servicio (demonio) escuchando por defecto el puerto 9000.

3. Configuramos Nginx para que envíe las peticiones a PHP-FPM. Ésta es la parte más "complicada" del invento. En el fichero /etc/nginx/nginx.conf descomentamos las líneas correspondientes:

location ~ \.php$ {
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME /var/www$fastcgi_script_name;
    include fastcgi_params;
}



Donde /var/www es el directorio raíz del servidor web, y tenemos que tener cuidado en separar las palabras include fastcgi_params, que en el fichero de configuración por defecto vienen juntas por error.

Otro cambio que puede ser útil, si queremos que el servidor web responda a varios dominios sin redirigir al primero de ellos (que es el comportamiento por defecto), consiste en añadir a la configuración el parámetro server_name_in_redirect off.

4. Reiniciamos NGinx:

/etc/init.d/nginx restart



5. Añadimos extensiones a PHP. Aquí, a gusto del cosumidor. Por ejemplo:

apt-get install php5-mysql php5-curl php5-gd php5-idn php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-mhash php5-ming php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl php5-json



Si añadimos extensiones, debemos reiniciar PHP-FPM:

/etc/init.d/php-fpm restart



Y ya está. Si creamos un fichero info.php con el código:

<?php
phpinfo();
?>



Y accedemos desde nuestro navegador, deberíamos ver las opciones de PHP que hemos instalado.

Fuente principal: http://www.howtoforge.com/installing-nginx-with-php5-and-php-fpm-and-mysql-support-on-ubuntu-10.10.

No hay comentarios:

Publicar un comentario