step
Roberto de Dios
Por Roberto de Dios en 18 de septiembre de 2015

En este tutorial voy a explicar como instalar Nginx, Php y Mysql en Ubuntu 14.04. Aunque por popularidad Apache gana de lejos a Nginx, este último es uno de los servidores http más ligeros, configurables y eficientes que podemos encontrar dentro del mundo del software libre. Su uso es idóneo para páginas y aplicaciones web que generan mucho trafico o que tienen miles de usuarios, ya que su punto fuerte es la gestión de recursos de la maquina donde se encuentra instalado.

Instalar-nginx-php-fph-mysql-ubuntu-14.04

Sobre Nginx

Nginx es un servidor web ligero de alto rendimiento que es utilizado por grandes sitios web como WordPress, GitHub, SourceForge y en partes de Facebook. Según un estudio de Netcraft, realizado en julio de 2014, Nginx es el segundo servidor web más usado en dominios activos.

Sobre Php-fpm

Php-fpm es una alternativa a la implementación Php FastCGI. Esta pensada para optimizar los recursos de un servidor a la hora de procesar scripts Php.

Sobre Mysql

Mysql es un sistema de gestión de bases de datos relacional usado por grandes websites como Wikipedia, Google, Facebook y Twitter entre otros.

Prerequisitos

El sistema operativo Ubuntu 14.04 instalado y acceso a una terminal como administrador.

Paso 1 – Instalar y configurar Nginx

 apt-get install nginx

Con solo ejecutar el comando anterior en una terminal con permisos de superusuario tendremos instalados Nginx en nuestro PC.

Verificamos que la instalación ha ido bien dirigiéndonos con nuestro navegador a 127.0.0.1, la dirección local de nuestra computadora. Aparecerá la página por defecto de Nginx:

Página por defecto de Nginx

Página por defecto de Nginx

Lo que haremos ahora es configurar un virtualhost en Nginx. Yo voy a usar como ejemplo el dominio mipaginaweb.com. Creamos un archivo nuevo en /etc/nginx/sites-available/ llamado mipaginaweb.com:

 nano -w /etc/nginx/sites-available/mipaginaweb.com

Le añadimos el siguiente código:


      server {

                server_name mipaginaweb.com;

                root /var/www/html/mipaginaweb;

                index index.html;

      }

Ahora creamos el directorio donde se encontrará la ruta base de las páginas que crearemos. Por defecto Nginx la ubica en /srv, pero por costumbre yo la traslado a /var/www/html/:

 mkdir -p /var/www/html/

A continuación creamos el directorio donde almacenaremos los archivos html de mipaginaweb.com y la página de inicio del dominio que se llamará index.html:

 mkdir /var/www/html/mipaginaweb
 nano -w /var/www/html/mipaginaweb/index.html

Dejamos index.html con el siguiente contenido:


 <html>

      <body>

           <h1 style="margin-top:50px;text-align:center;">Hola! Estas en mipaginaweb.com</h1>

      </body>

 </html>

Ahora llega el momento de activar el dominio mipaginaweb.com para que sea procesado por Nginx. Para ello crearemos un enlace simbólico en /etc/nginx/sites-enabled de /etc/nginx/sites-available/mipaginaweb.com:

 ln -s /etc/nginx/sites-available/mipaginaweb.com /etc/nginx/sites-enabled/

Agregamos el dominio mipaginaweb.com al archivo /etc/hosts para que apunte al servidor local:

 nano -w /etc/hosts

Añadimos esta linea al final del archivo:

 127.0.0.1     mipaginaweb.com

Reiniciamos el servidor Nginx y comprobamos que todo haya ido bien. Al dirigirnos a mipaginaweb.com en un navegador debe de aparecernos un mensaje similar al de la siguiente captura:

 service nginx restart
Instalar Nginx en Ubuntu

Virtualhost funcionando correctamente en Nginx

Paso 2 – Instalar y configurar Php-fpm

 apt-get install php5-fpm

Lo primero que tenemos que hacer es renombrar el archivo index.html que tenemos en el directorio /var/www/html/mipaginaweb/ a index.php y lo editamos:

 mv /var/www/html/mipaginaweb/index.html /var/www/html/mipaginaweb/index.php
 nano -w /var/www/html/mipaginaweb/index.php

Lo dejamos así:


 <html>

      <body>

           <h1 style="margin-top:50px;text-align:center;">Hola! Estas en mipaginaweb.com</h1>

           <?php phpinfo(); ?>

      </body>

 </html>

Ahora vamos a configurar Php-fpm para que procese correctamente las peticiones de Nginx. Editamos el archivo de nuestro virtualhost:

 nano -w /etc/nginx/sites-available/mipaginaweb.com

Debe de quedarnos así:


      server {

                server_name mipaginaweb.com;

                root /var/www/html/mipaginaweb;

                index index.html index.php;

	        location ~ \.php$ {

                      try_files $uri =404;
                      fastcgi_split_path_info ^(.+\.php)(/.+)$;
                      include /etc/nginx/fastcgi_params;
                      fastcgi_pass unix:/var/run/php5-fpm.sock;
                      fastcgi_index index.php;
                      fastcgi_param SCRIPT_FILENAME /var/www/html/mipaginaweb$fastcgi_script_name;

	        }

      }

El ultimo paso es reiniciar los servicios Php-fpm y Nginx:

 service nginx restart
 service php5-fpm restart

Navegamos a mipaginaweb.com para confirmar que todo funciona correctamente. La página nos mostrará la información referente a Php:

Php-fpm funcionando correctamente con Nginx

Php-fpm funcionando correctamente con Nginx

Paso 3 – Instalar y configurar Mysql

 apt-get install mysql-server php5-mysql

A mitad de ejecución de la instalación del servidor se nos solicitara que introduzcamos una contraseña para el usuario root de Mysql. Completamos este paso y continuará con la instalación.

Instalar Mysql en Ubuntu

Instalación de Mysql en Ubuntu

Finalmente comprobaremos que Php se comunica con el servidor Mysql. Nos dirigimos con el navegador a mipaginaweb.com y en el campo Mysql de la información de Php nos debería de mostrar “Enabled” como en esta imagen:

Instalar Mysql en Ubuntu

Soporte Mysql activado en Php

Y hasta aquí llega el tutorial de instalación. Nginx tiene una configuración básica que necesitará de ajustes para trabajar con cualquier CMS como WordPress, Joomla o Drupal. En entradas posteriores explicare como configurar Nginx para trabajar con estos CMS.