Cómo instalar LEMP (Linux, Nginx, MariaDB, PHP-FPM) en Debian 9 Stretch


Dado que Debian impulsa un gran porcentaje de servidores web en todo el mundo, en este artículo explicaremos cómo instalar la pila LEMP (Linux + Nginx + MariaDB + PHP-FPM) en Debian 9 Stretch como alternativa a LAMP (use esta guía para instalar LAMP en Debian 9).

Además, mostraremos cómo realizar una configuración mínima de Nginx/PHP-FPM para que incluso los nuevos administradores del sistema puedan configurar nuevos servidores web para configurar páginas dinámicas.

Para hacer esto, aprovecharemos las actualizaciones recientes de los repositorios oficiales de la distribución. Se supone que se ha actualizado de Jessie.

Instalación de LEMP en Debian 9 Stretch

Quizás se pregunte por qué mencionamos PHP-FPM en lugar de PHP como parte de la pila LEMP. A diferencia de otros servidores web, Nginx no proporciona soporte nativo para PHP.

Por esa razón, PHP-FPM (Fast Process Manager) se usa para manejar solicitudes de páginas PHP. Puede obtener más información sobre PHP-FPM en el sitio oficial de PHP.

La versión predeterminada proporcionada en los repositorios de Debian php7.0-fpm. Como probablemente pueda adivinar basándose en el nombre del paquete, esta versión puede incluso manejar solicitudes a páginas que incluyen código PHP 7.

NOTA: Si Apache se instaló en la misma caja anteriormente, asegúrese de que esté detenido y deshabilitado antes de continuar.

Dicho esto, instalemos los componentes de la pila LEMP de la siguiente manera:

# aptitude update 
# aptitude install nginx mariadb-server mariadb-client php-mysqli php7.0-fpm

Cuando se complete la instalación, primero asegurémonos de que Nginx y PHP-FPM se estén ejecutando y estén habilitados para iniciarse en el arranque:

# systemctl status nginx php7.0-fpm

Si indica que uno o ambos servicios no se están ejecutando, hágalo.

# systemctl start nginx php7.0-fpm
# systemctl enable nginx php7.0-fpm

Como es el caso con cada instalación de MariaDB o MySQL, es importante ejecutar mysql_secure_installation para realizar una configuración de seguridad mínima y establecer la contraseña para la cuenta raíz de la base de datos.

# mysql_secure_installation

Si no sabe cómo hacer esto, puede consultar el paso 4 en Cómo instalar MariaDB 10 en Debian y Ubuntu.

Configuración de Nginx para usar PHP-FPM en Debian 9

El archivo de configuración principal de Nginx es/etc/nginx/sites-available/default, donde necesitaremos realizar los siguientes cambios dentro del bloque del servidor:

  • Asegúrese de que el bloque de ubicación que maneja las solicitudes de PHP esté habilitado, con la excepción de aquel en el que la directiva fastcgi_pass apunta a la NIC de bucle invertido.
  • Agregue index.php después de la directiva de índice para indicar que, si se encuentra, debe publicarse de forma predeterminada antes de index.html u otros archivos.
  • Agregue la directiva server_name apuntando a la dirección IP o al nombre de host de su servidor. Este será 192.168.0.35 en nuestro caso.
  • Además, asegúrese de que la directiva raíz apunte a la ubicación donde se almacenarán sus archivos .php (/ var/www/html de forma predeterminada).

Cuando haya terminado, puede usar el siguiente comando para probar el archivo de configuración en busca de errores.

# nginx -t 

En este punto, su/etc/nginx/sites-available/default debería verse de la siguiente manera, donde los números se refieren a la configuración y representan la lista anterior:

# grep -Ev '#' /etc/nginx/sites-available/default

Prueba de Nginx y PHP-FPM en Debian 9

Para asegurarnos de que ahora estamos usando Nginx como nuestro servidor web, creemos un archivo llamado info.php dentro de/var/www/html con el siguiente contenido:

<?php
	phpinfo();
?>

Luego vaya a http://192.168.0.35/info.php y revise la parte superior de la página donde debería ver esto:

Finalmente, apuntemos nuestro navegador al archivo booksandauthors.php que creamos en Install LAMP (Linux, Apache, MariaDB o MySQL y PHP) Stack en Debian 9.

Como puede ver en la siguiente imagen, este archivo ahora está siendo servido por Nginx:

NOTA: Si observa que Nginx sirve los archivos .php como descargas en lugar de ejecutarlos, borre la memoria caché de su navegador o pruebe con un navegador diferente. En particular, si está utilizando Chrome, es posible que desee realizar la prueba con el modo incógnito.

En este artículo hemos explicado cómo instalar y configurar Nginx para servir páginas dinámicas .php . Es importante tener en cuenta que después de esta configuración inicial hay configuraciones que deben tenerse en cuenta para proteger el servidor web.

Puede encontrar un resumen básico en La guía definitiva para proteger, fortalecer y mejorar el rendimiento del servidor web Nginx.

Si está buscando alojamiento virtual en Nginx, lea Cómo configurar hosts virtuales basados en nombre y basados en IP en NGINX.

Como siempre, no dude en informarnos si tiene preguntas o comentarios sobre este artículo.