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:
apt-get -y update && apt-get -y install nginx
A diferencia de Apache, no arranca automaticamente una vez instalado, por lo tanto lo iniciamos:
service nginx start
Para comprobar que efectivamente está arrancado:
service nginx status
Si usamos nuestro navegador web, podemos comprobar si está funcionando escribiendo http://nuestra-ip/ o bien http://localhost
Configuramos nginx
El archivo de configuración lo tenemos ubicado en /etc/nginx/nginx.conf
Usaremos nano para su edición:
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í:
worker_processes 4;
Una vez editado debemos reiniciar el servicio:
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:
nano /etc/nginx/sites-available/default
Editamos una parte:
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:
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:
nginx -t
Si todo ha ido bien, veremos una cosa parecida a la siguiente:
Y reiniciamos:
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:
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:
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
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
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:
nano /usr/share/nginx/www/test.php
Y añadiremos:
<?php
phpinfo();
?>;
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
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
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!!
Lo único que que le falta es un mejor nombre LEMP no le hace honor… 🙂
Segui todos los pasos pero los php me los descarga en vez de procesarlos
Saludos y gracias
Hola Ezequiel,
Tiene toda la pinta que te falta realizar el siguiente paso:
«apt-get install php5 php5-fpm php5-mysql»
Saludos
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
Hola,
¿Pero el módulo php5-mysql lo has instalado? Es un módulo adicional a MySQL.
Si, esta todo instalado, igualmente lo que sucede es independiente del mysql.
Ya que no corre ningun .php, solo los descarga!!
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
Hola David,
lo voy a instalar en aws.
sldos