¿Tienes una cuenta? identificate: Usuario Contraseña o puedes obtener una gratis.

ToRo Blog

¡Al pesebre... fieras!

27
octubre
2008

Compilar y configurar nginx con php

Feliz

Escribo esta pequeña guía porque soy muy malo para recordar las cosas y esto podría ayudarme en futuras instalaciones, si a alguien mas le ayuda entonces perfecto. 

Nginx es un servidor web de alto rendimiento, ocupa menos recursos que apache y otros servidores web que he probado, incluyendo Lighttpd.

Queremos tener LnMP (nginx por Apache) funcionando, para ello es necesario tener php corriendo como FastCGI:

Requerimientos:

  1. nginx (la última versión es la 0.6.32)
  2. MySQL instalado
  3. PHP instalado como cgi
  4. Lighttpd compilado (necesitamos solo un archivo, spawn-fcgi)

La instalación es muy sencilla, basta hacer lo clásico compilar e instalar:

mkdir /tmp/nginx && cd /tmp/nginx
wget http://sysoev.ru/nginx/nginx-0.6.32.tar.gz
tar -zxvf nginx-0.6.32.tar.gz
cd nginx-0.6.32
./configure
make
sudo make install #aqui puede usarse su -c make install o depende de la distribución de linux instalada.
cd ..
wget http://www.lighttpd.net/download/lighttpd-1.4.20.tar.gz
tar -zxvf lighttpd-1.4.20.tar.gz
cd lighttpd-1.4.20
./configure
make
sudo mkdir -p /opt/bin
sudo cp src/spawn-fcgi /opt/bin/
#procedemos a instalar PHP/cgi, este paso puede omitirse si ya se tiene instalado
cd ..
wget http://www.php.net/get/php-5.2.6.tar.bz2/from/this/mirror
tar -jxvf php-5.2.6.tar.bz2
cd php-5.2.6
./configure --prefix=/opt --with-config-file-path=/opt/etc --enable-force-cgi-redirect --enable-fastcgi # ... mas opciones
make
sudo make install

La instalación de nginx queda por defecto en /usr/local/nginx/ y de php en modo cgi en /opt/. Ahora pasamos a la parte de configuración, para levantar a php ejecutamos la siguiente orden, esto claro se puede poner en algun script de inicio para que el servidor lo levante, o podemos simplemente añadirlo a /etc/rc.local o algun script que se ejecute cuando se reinicia el servidor.

/opt/bin/spawn-fcgi -a 127.0.0.1 -p 8000 -u lj -f /opt/bin/php-cgi

Esto levantará a PHP en el puerto 8000, pero claro se puede cambiar. Ahora configuramos las opciones por defecto de nginx, suponiendo que nuestro webserver estará en /var/www entonces editamos nuestra configuración de nginx que por defecto está en /usr/local/nginx/conf/nginx.conf:

user apache;
worker_processes  2;
error_log  logs/error.log;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    server {
       listen example.org:80;
       server_name example.org;
       root /var/www;
       index index.php;
       location ~ .php$ {
            fastcgi_pass   127.0.0.1:8000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  /var/www$fastcgi_script_name;
            include        fastcgi_params;
        }
    }
}

La configuración como se ve, es muy sencillita, ahora solo para probar que efectivamente no tiene errores, ejecutamos: /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf -t

Y ya para ejecutarlo:

/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

Con esto tendríamos nuestro servidor trabajando y con menos recursos utilizados que apache (mucho menos), yo lo he probado en varios servidores (incluyendo el servidor de media de el siglo de Torreón e ymipollo) y funciona excelente.

Se pueden tener configuraciones mas avanzadas, tener varios servidores virtuales ejecutandose, hacer uso de expresiones regulares para el módulo similar a mod_rewrite de Apache, etc., pero eso será otro tema.

Suerte.



Escuchando: Cama y mesa
Almacenado en Tips, Tutoriales, Nginx, Webserver [ Enlace | Tres comentarios ] del.icio.us del.icio.us Estrella este post *****
comparte esto
Comparte esta entrada (del.icio.us, por correo, etc) o agrega este blog a tu Google Reader.

Entradas relacionadas:
  1. nginx, algunos tips.
  2. cambios...
  3. Computadoras nuevas
  4. Infinitum, por fin.
  5. Blackberry

Han escrito 3 comentarios de «Compilar y configurar nginx con php»

foto presu
Lunes 27 de octubre, 2008 19:35.

ay no manches! como voy a poder configurar eso, si ni siquiera puedo pronunciarlo: enjins, enmyink, ingyinss

chale me rindo!

foto ToRo
Lunes 27 de octubre, 2008 19:36.

aquí está la documentación original: http://sysoev.ru/nginx/ (en ruso) jaja. También hay un wiki en inglés, pero aquí puse resumido lo que yo he hecho y que ha funcionado.

foto Gaia
Martes 28 de octubre, 2008 11:29.

sudo, make jaja.. saludos.

Si usted tiene una cuenta en ymipollo.com, identifíquese:
Usuario: Password: (recordar identificación en este blog)
De lo contrario, escriba sus datos (todos los campos son obligatorios.):
Nombre: Correo E.:
Blog/Web: recordar datos.
[ si eres visitante puedes obtener tus comentarios con foto suscribiendote a gravatar. Tenga en cuenta que como usuario anónimo, su dirección IP será almacenada y mostrada al dueño de la entrada en cada comentario. ]
Escriba su comentario:
Por favor escriba respecto al post, procure revisar su ortografía. Si su comentario no es respecto al tema, por favor no lo haga.

Usted escribirá este mensaje como:
Es posible que su comentario no aparezca de forma inmediata (o que nunca aparezca) eso depende de la decisión del autor de este blog.

enviarme correo cuando alguien comente suscribirse a este post.