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


Como Debian alimenta un gran porcentaje de servidores web en todo el mundo, en este artículo explicaremos cómo instalar el LEMP ( Linux + Nginx + MariaDB + PHP-FPM ) en la pila de Debian 9 Stretch como alternativa a LAMP (use esta guía para instale 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 de sistemas 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 ha instalado Debian 9 en una máquina virtual, una máquina virtual o un VPS, o que ha actualizado desde Jessie.

Instalando LEMP en Debian 9 Stretch

Quizás se pregunte por qué mencionamos PHP-FPM en lugar de PHP como parte de la pila de 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 por defecto proporcionada en los repositorios de Debian php7.0-fpm . Como probablemente pueda adivinar basándose en el nombre del paquete, esta versión incluso puede manejar solicitudes a páginas que incluyen el código PHP 7.

rojo

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 estén ejecutándose y habilitados para iniciar el arranque:

# systemctl status nginx php7.0-fpm

Si indica que uno o ambos servicios no se están ejecutando, entonces hazlo.

# 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 hacerlo, puede consultar 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 deberemos realizar los siguientes cambios dentro del bloque del servidor:

  • Ensure the location block that handles PHP requests is enabled, with the exception of the one where the fastcgi_pass directive points to the loopback NIC.
  • Add index.php after the index directive to indicate that if found, it should be served by default before index.html or other files.
  • Add the server_name directive pointing to the IP address or hostname of your server. This will be 192.168.0.35 in our case.
  • Additionally, make sure the root directive points to the location where your .php files will be stored (/var/www/html by default).

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

# nginx -t 

En este punto, su /etc/nginx/sites-available/default debería tener el siguiente aspecto: los números que se refieren a la configuración representan la lista anterior:

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

Probando Nginx y PHP-FPM en Debian 9

Para asegurarnos de que ahora estamos utilizando Nginx como nuestro servidor web, creemos un archivo llamado info.php dentro de /var/www/html con Los siguientes contenidos:

<?php
	phpinfo();
?>

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

Finalmente, dirijamos nuestro navegador al archivo booksandauthors.php que creamos en la pila Instalar LAMP (Linux, Apache, MariaDB o MySQL y PHP) en Debian 9.

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

rojo

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

Puede encontrar un resumen básico en la Guía definitiva para asegurar, reforzar 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 hacernos saber si tiene preguntas o comentarios sobre este artículo.