Instalar LEMP (Nginx, MariaDB y PHP) en Debian 7

LEMP es una combinación de un sistema operativo Linux con servicios enfocados a la web (Nginx,MariaDB y PHP). A diferencia de LAMP, utilizaremos Nginx cómo servidor web en vez de Apache.

Nginx, es un servidor web ligero y de alto rendemiento, también se puede utilizar cómo proxy para protocolos de correo electrónico.

Es software libre, utiliza la licencia BSD, y multiplataforma, ya que es compatible con GNU/Linux, BSD y devirados, Solaris, MAC OS X y Windows)

 

Instalación de LEMP en Debian 7 Wheezy

Para la instalación cómo sistema operativo usaremos GNU/Linux Debian 7.

Nginx ya viene en los repositorios main, así que instalarlo es muy fácil:

  1. apt-get -y update && apt-get -y install nginx

A diferencia de Apache, no arranca automaticamente una vez instalado, por lo tanto lo iniciamos:

  1. service nginx start

Para comprobar que efectivamente está arrancado:

  1. service nginx status

Si usamos nuestro navegador web, podemos comprobar si está funcionando escribiendo http://nuestra-ip/ o bien http://localhost

 

lemp-nginx-debian-001

Configuramos nginx

El archivo de configuración lo tenemos ubicado en /etc/nginx/nginx.conf

Usaremos nano para su edición:

  1. nano /etc/nginx/nginx.conf

Podemos indicar que número de procesadores queremos utilizar  para nginx. En mi tengo 4 núcleos.

Podéis usar el comando «lscpu» para comprobar los de vuestra máquina.

En mi caso la línea quedaría así:

  1. worker_processes 4;

Una vez editado debemos reiniciar el servicio:

  1. service nginx restart

El archivo donde se configure nuestros vhost está ubicado en /etc/nginx/sites-available/default.

Desde dicho archivo podemos definir el nombre de nuestro dominios o IP, entre muchas otras configuraciones.

Ya usaremos PHP, debemos de añadir nuestro index.php en su configuración:

  1. nano /etc/nginx/sites-available/default

Editamos una parte:

 

lemp-nginx-debian-002

 

Explico un poco lo que he hecho:

  • He descomentado la línea «listen 80», de ésta manera escucharemos por el puerto 80 usando ipv4
  • Dejo comantado la siguiente línea, ya que de momento no me interesa usar ipv6
  • Dejo la línea siguiente tal y cómo está, que nos dice dónde guardaremos los proyectos web.
  • He añadido «index.php»
  • Añado un dominio FQDN aceptable. Para que funcione he modificado mi archivo hosts, que asociará la IP del servidor con dicho dominio.

No hemos acabado de editar aún el fichero, si bajamos un, veremos una parte comentada, que se inicia con: #location ~ .php$, nos deberá quedar cómo en la siguiente imagen:

lemp-nginx-debian-003

He seguido las recomendaciones de la web unixmen.com, y he añadido la línea ‘try_file $uri=404;» para evitar los «zero day exploits«

Guardamos el archivo y comprobamos que todo haya ido bien, con el siguiente comando:

  1. nginx -t

Si todo ha ido bien, veremos una cosa parecida a la siguiente:

lemp-nginx-debian-004

Y reiniciamos:

  1. service nginx restart

Instalar Maria DB

Esta sección va a ser fácil, ya que hice un artículo en su día, que podéis ver aquí.

Si queremos usar MySQL lo podemos instalar con una sóla línea:

  1. apt-get -y install mysql-server mysql-common mysql-client

En ambos casos recomiendo no utilizar la misma contraseña del sistema con la del motor de la base de datos.

Instalamos PHP

En Debian debemos de instalar los siguiente paquetes:

  1. apt-get install php5 php5-fpm php5-mysql

Para sabe que es el paquete ‘php5-fpm‘ os recomiendo el artículo de la wiki oficial de Debian, aquí.

Para que todo vaya bien, editaremos el archivo de configuración de PHP /etc/php5/fpm/php.ini

  1. nano /etc/php5/fpm/php.ini

Y descomentamos la línea ‘cgi.fix_pathinfo=1» y cambiamos el valor 1 por 0.

Reiniciamos php5-fpm

  1. service php5-fpm restart

Testeamos PHP

Al igual que hicimos en su día con LAMP, crearemos un archivo llamado ‘test.php’, para testear la configuración:

  1. nano /usr/share/nginx/www/test.php

Y añadiremos:

  1. <?php
  2.  phpinfo();
  3. ?>;

Una vez hecho esto guardamos, y ya nos podemos ir a nuestro navegador web.

En mi caso sería: http://lemp.ochobitsunbyte.com/test.php

lemp-nginx-debian-005

Con esto ya tendríamos la configuración lista.

Os recomiendo profundizar en LEMP, siguiendo las siguientes páginas webs:

Nginx Community (en inglés)

La guía de DigitalOcean para la instalación de LEMP (en inglés)

La guía de Unixmen.com para la instalación de LEMP (en inglés)

Los derechos de todas las imágenes son Creative Commons

Logo Nginx

Logo MariaDB

Logo PHP

La fotocomposición de la portada es de cosecha propia, y podéis utilizarla usando también los derechos CC que podéis ver en la web.

Nos vemos pronto!

See you soon!!