Introducción.
Desde hace un tiempo había decidido probar otros servidores de páginas diferentes de Apache en busca de uno que consumiera menos recursos, especialmente para la etapa de desarrollo. Después de una revisión a la oferta de servidores web y a los comentarios encontrados en los foros los mas opcionados son: Nginx, Cherokee y Lighttpd. En esta ocasión estoy probando al primero de ellos.
Instalar los paquetes necesarios.
$ sudo aptitude install php5-cgi php5-cli php5-common php5-curl php5-gd php5-json php5-mcrypt php5-sqlite php5-mysql
$ sudo aptitude install spawn-fcgi
$ sudo aptitude install nginx
Crear un directorio para el virtualhost.
En este caso se va a utilizar el sitio web por defecto (default) y se va a ubicar en /home/www/public, los virtualhosts adicionales se crean siguiendo los mismos pasos.
$ sudo mkdir -p /home/www/public
$ sudo mkdir /home/www/logs
$ sudo chown -R www-data:www-data /home/www
Establecer la configuración del virtualhost.
$ sudo vi /etc/nginx/sites-available/default
server { listen 80 default; server_name localhost; access_log /home/www/logs/localhost.access.log; location / { root /home/www/public; index index.html index.htm; } location ~ .php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /home/www/public/$fastcgi_script_name; include fastcgi_params; } }
Tenga en cuenta que las rutas asignadas a las variables access_log, root y fastcgi_param se relacionan con los directorios creados en el paso anterior.
Activar el virtualhost.
En este caso se utiliza el sitio por defecto, sin embargo pueden crearse nuevos simplemente utilizando un nombre diferente para el enlace.
$ sudo ln -s /etc/nginx/sites-available/default /etc/nginx/sites-enabled/default
Crear un recubrimiento para spawn-fcgi.
$ sudo vi /etc/init.d/php-fastcgi
#!/bin/bash BIND=127.0.0.1:9000 USER=www-data PHP_FCGI_CHILDREN=5 #15 PHP_FCGI_MAX_REQUESTS=1000 PHP_CGI=/usr/bin/php-cgi PHP_CGI_NAME=`basename $PHP_CGI` PHP_CGI_ARGS="- USER=$USER PATH=/usr/bin PHP_FCGI_CHILDREN=$PHP_FCGI_CHILDREN PHP_FCGI_MAX_REQUESTS=$PHP_FCGI_MAX_REQUESTS $PHP_CGI -b $BIND" RETVAL=0 start() { echo -n "Starting PHP FastCGI: " start-stop-daemon --quiet --start --background --chuid "$USER" --exec /usr/bin/env -- $PHP_CGI_ARGS RETVAL=$? echo "$PHP_CGI_NAME." } stop() { echo -n "Stopping PHP FastCGI: " killall -q -w -u $USER $PHP_CGI RETVAL=$? echo "$PHP_CGI_NAME." } case "$1" in start) start ;; stop) stop ;; restart) stop start ;; *) echo "Usage: php-fastcgi {start|stop|restart}" exit 1 ;; esac exit $RETVAL
$ sudo chmod +x /etc/init.d/php-fastcgi
Iniciar manualmente los servicios.
$ sudo /etc/init.d/nginx start
$ sudo /etc/init.d/php-fastcgi start
Configurar el inicio automático de los servicios (opcional).
$ sudo update-rc.d nginx defaults
$ sudo update-rc.d php-fastcgi defaults
Probar el servicio.
$ vi /home/www/public/test.php
<?php phpinfo(); ?>
Acceder a la página web http://localhost/test.php desde el equipo local.
Gracias por el aporte, ahora tengo un problema no puedo ver mis home desde otro equipoin
Un detalle en la linea
fastcgi_param SCRIPT_FILENAME /home/www/public$fastcgi_script_name
Falta “/” public/$fastcgi_script_name
Corregido! Muchas gracias @MaFuHe por hacerme notar el error.
Esta noche lo pruebo a ver que tal, hasta ahora solo he trasteado Apache, habrá que probar otras cosas (según dicen más rápidas)
Gracias.
en la parte del Activar el virtualhost.
el comando no hace ninguna intruccion???
$ sudo /etc/nginx/sites-available/default /etc/nginx/sites-enabled/default
Javier, en ese punto se crea un enlace dinámico para activar el virtualhost. Faltó el comando en la edición del post. Gracias por el comentario.
$ sudo ln -s /etc/nginx/sites-available/default /etc/nginx/sites-enabled/default
Muy bueno!!!