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!!

13 Respuestas

  1. Eric dice:

    Lo único que que le falta es un mejor nombre LEMP no le hace honor… 🙂

  2. Ezequiel dice:

    Segui todos los pasos pero los php me los descarga en vez de procesarlos

    Saludos y gracias

    • davidochobits dice:

      Hola Ezequiel,
      Tiene toda la pinta que te falta realizar el siguiente paso:
      «apt-get install php5 php5-fpm php5-mysql»
      Saludos

      • Ezequiel dice:

        Hola, gracias por responder, pero he realizado todos los pasos excepto la instalación de MySQL ya que lo tenia instalado de antes, pero sigo con el mismo problema

        • davidochobits dice:

          Hola,
          ¿Pero el módulo php5-mysql lo has instalado? Es un módulo adicional a MySQL.

          • Ezequiel dice:

            Si, esta todo instalado, igualmente lo que sucede es independiente del mysql.
            Ya que no corre ningun .php, solo los descarga!!

  3. olidev dice:

    No creo que sea necesario instalar y configurar apc y mariadb para la pila LEMP en Debian. Se puede hacer sin él, como aquí: https://www.cloudways.com/blog/how-to-create-a-lemp-stack-on-debian-server/ Los principales paquetes para instalar son nginx, php, mysql y phpfpm.

    • Hola,

      A ver, en el artículo utilizo MariaDB porque es un sistema que utiliza una licencia de software libre y no depende de una gran compañía como Oracle; en cualquier caso también explico como instalar MySQL, ¿te has leído el artículo? Por cierto, ya me dirás de donde has sacado eso de «apc»

      Por otra parte, el artículo ya tiene cuatro años. Si funciona todo al 100 % ya me puedo dar con un canto en los dientes.

      Saludos

  4. edmk dice:

    Hola David,
    lo voy a instalar en aws.
    sldos

  1. 23 noviembre, 2014

    […] con Nginx o IIS, además utiliza bases de datos tipo MySQL y PHP. Es decir, con un servidor LAMP o LEMP nos irá sobre la […]

  2. 19 mayo, 2015

    […] es decir, Linux con Apache2, MySQL y PHP5. Para hacerlo un poco diferente voy a crear un servidor LEMP, por lo tanto, Nginx, MariaDB y PHP5. En los enlaces anteriores podéis ver sendas […]

  3. 19 mayo, 2015

    […] es decir, Linux con Apache2, MySQL y PHP5. Para hacerlo un poco diferente voy a crear un servidor LEMP, por lo tanto, Nginx, MariaDB y PHP5. En los enlaces anteriores podéis ver sendas […]

  4. 8 julio, 2016

    […] con los productos que aparecen en la web. He montado un pequeño VPS y he instalado un servidor LEMP con PHP, Nginx y MySQL, sobre un servidor Debian Jessie 8.3  Vamos un poco al lío, primero […]

Deja un comentario

This site uses Akismet to reduce spam. Learn how your comment data is processed.