Búsqueda de sitios web

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 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 de sistemas puedan configurar servidores web completamente nuevos 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 o VPS, o que ha actualizado desde 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 utiliza 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 puedas adivinar según 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ó anteriormente en el mismo cuadro, 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 habilitados para iniciarse en el arranque:

systemctl status nginx php7.0-fpm

Si indica que uno o ambos servicios no se están ejecutando, entonces 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 ubicación que maneja las solicitudes 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 index para indicar que, si se encuentra, debe publicarse de forma predeterminada antes de index.html u otros archivos.
  • Agregue la directiva server_name que apunte 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 root 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 tener el siguiente aspecto, donde los números se refieren a la configuración que 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 usando Nginx como nuestro servidor web, creemos un archivo llamado info.php dentro de /var/www/html con los siguientes contenidos:

<?php
	phpinfo();
?>

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

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

Como puede ver en la siguiente imagen, Nginx ahora proporciona este archivo:

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ás utilizando Chrome, es posible que quieras probar con el modo incógnito.

Resumen

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 se deben tener en cuenta para proteger el servidor web.

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

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

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