Jam Blog

¡Respaldo de cosas que podria necesitar luego!

Instalando Nginx con soporte PHP5 en Ubuntu

04 January 2011

Hace unos meses atras escribi un articulo en el que explicaba como Instalar Nginx en CentOS,  en aquellos tiempos tenia el servidor dedicado con CentOS en el que hacia las pruebas.  Ahora les paso a explicar como instalar el servicio web Nginx con soporte para PHP5 (a travez de PHP-FPM - Administrador de procesos FastCGI ) en Ubuntu 10.10 y asi tener un servidor web local para hacer pruebas con PHP, instalar algun CMS, instalar alguna interfaz de administracion para MongoDB :P , etc.

Para esto lo primero que debemos hacer es instalar Nginx tecleando en la terminal:

sudo aptitude install nginx

con esto tendremos el servidor web Nginx instalado y funcionando en Ubuntu. Lo podemos comprobar escribiendo en el navegador:

http://localhost

Es probable que veas un mensaje 404 Not Found y esto es porque en Ubuntu 10.10 el directorio raiz de Nginx por defecto es /var/www y alli no hay ningun index.html, sino que esta en /var/www/nginx-default .  Para solucionar esto copia el contenido de este ultimo directorio en /var/www y entra de nuevo en http://localhost Ahora si veras la pagina de Bienvenida de Nginx.

Ahora debemos instalar PHP5, PHP5-FPM y algunos extras, mas para esto teclamos en la terminal:

sudo aptitude install php5-cgi php5-fpm php5-dev php5-curl php5-cli php5-imagick php5-sqlite php-pear

Con esto ya deberiamos tener instalado PHP5 y ejecutandose PHP5-FPM (PHP5 sobre FastCGI).

Ahora nos queda configurar un poco Nginx para que pueda dar soporte PHP sobre FastCGI

Para esto debemos abrir el archivo de configuracion de sitios en Nginx y modificarlo un poco, lo abrimos con Vim teclando:

sudo vim /etc/nginx/sites-available/default

y lo modificamos para que se vea como esto:

# You may add here your
# server {
#    ...
# }
# statements for each of your virtual hosts

server {

 listen   80; ## listen for ipv4
 listen   [::]:80 default ipv6only=on; ## listen for ipv6

 server_name  localhost;

 access_log  /var/log/nginx/localhost.access.log;

 location / {
 root   /var/www;
 index  index.php index.html index.htm;
 }

 location /doc {
 root   /usr/share;
 autoindex on;
 allow 127.0.0.1;
 deny all;
 }

 location /images {
 root   /usr/share;
 autoindex on;
 }

 #error_page  404  /404.html;

 # redirect server error pages to the static page /50x.html
 #
 #error_page   500 502 503 504  /50x.html;
 location = /50x.html {
 root   /var/www;
 }

 # proxy the PHP scripts to Apache listening on 127.0.0.1:80
 #
 #location ~ \.php$ {
 #proxy_pass   http://127.0.0.1;
 #}

 # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
 #
 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;
 }

 # deny access to .htaccess files, if Apache's document root
 # concurs with nginx's one
 #
 location ~ /\.ht {
 deny  all;
 }
}

La parte mas importante de todo es el bloque location ~ .php$ …  en el que se especifica como Nginx va a trabajar con FastCGI.

Una vez realizado esto reiniciamos Nginx con:

sudo service nginx restart

Para comprobar que Nginx trabaja perfectamente con PHP5 nos vamos al directorio /var/www y con nano agregamos  el archivo info.php:

sudo vim info.php

en dicho archivo agregamos lo siguiente:

<?php
	phpinfo();
?>

Lo guardamos, cerramos y en el navegador escribimos:

http://localhost/info.php

si todo a ido bien veremos algo como esto:

Bien ya tienes instalado Nginx con soporte PHP5 mediante FastCGI (php5-fpm) :P





  • submit to reddit
comments powered by Disqus

¿Social?