viernes, 18 de abril de 2014

UBUNTU: Migrar de APACHE a NGINX


Precondiciones:
  1. Tener apache funcionando
  2. Tener php5 funcionando en apache
Paso 1:
Remover apache, así sin más, sin miedo:


sudo apt-get remove apache2*


Paso 2:

Instalar php5-fpm con sus dependencias, este paso podría disparar algunos mensajes sobre algunos paquetes ya instalados:

sudo apt-get install php5-common php5-cli php5-fpm


Paso 3:
Instalamos nginx

sudo apt-get install nginx

Paso 4:
Comienzan las configuraciones :D, primero php-fpm

En el archivo:


    /etc/php5/fpm/pool.d/www.conf

 
Buscar la variable listen, que por default viene como:


    listen = 127.0.0.1:9000


La modificamos a:


    listen = /var/run/php5-fpm.sock


Tomen en cuenta el valor que asignen a listen, por que ese valor mas el prefijo "unix:" deben coincidir con la variable fastcgi_pass de nginx pues ese sera el socket por el que se comunicaran php y nginx.

 
Ahora nginx, en el arcivo:


    /etc/nginx/sites-enabled/default

Vamos primero a modificar la variable root, para no tener que mover nuestros proyectos actuales


root /var/www;

Luego de ello, buscamos el location que nos propone nginx para manejar las peticiones de php, y descomentamos las lineas necesarias para que quede algo así:


    location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
        # With php5-cgi alone:
        #fastcgi_pass 127.0.0.1:9000;
        # With php5-fpm:
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
    }

  
Noten que la variable fastcgi_pass tiene el prefijo "unix:" y el valor que le dimos a la variable listen de php-fpm, si dicha condición no se cumple la configuración no funcionara.

También sugiero agregar el siguiente location, para mejorar la descarga de imágenes y contenido estático
:

    location ~* ^.+.(jpg|jpeg|gif|css|png|js|ico)$ {
            access_log        off;
            expires           30d;
            add_header Cache-Control "public";
    }


Por ultimo agregamos el siguiente location, el cual impedirá el acceso a los archivos .htaccess de apache


    location ~ /\.ht {
        deny all;
    }


Bueno, al llegar a este punto solo nos queda una cosa por hacer


sudo service nginx restart

Y si todo salío como debe, visiten http://localhost y bienvendios a NGINX, y si no, como dice Kick Butowsky "Live Till It Hurts"

No hay comentarios:

Publicar un comentario