LEMP es un acrónimo de Linux, NGINX (pronunciado como Engine X,) MySQL y PHP. Todas estas son herramientas populares de código abierto que se utilizan normalmente en el desarrollo web. La pila LEMP se usa comúnmente para alojar sitios web dinámicos. La mayoría de los sistemas de gestión de contenido como WordPress, Drupal y Joomla crean páginas web dinámicas.
Cuando un viene la solicitud, el servidor ejecutará el código PHP para armar la versión HTML y consultar la base de datos backend para obtener contenido para insertar en HTML.
En esta guía, cubriremos los pasos para instalar el Pila LEMP sobre Ubuntu 20.04.
Prerrequisitos
- Un servidor Linux Ubuntu 20.04 en funcionamiento
- Un usuario con sudo privilegios
Esto se ocupa de la primera parte de la pila LEMP, es decir, Linux.
Instalar el servidor web NGINX
Para la segunda parte de la pila LEMP, necesitaríamos configurar NGINX para brindar recursos web a los clientes.
Es fácil instalar NGINX en Ubuntu 20.04 con el siguiente comando.
PS sudo apto instalar nginx
Una vez que la instalación se complete correctamente, puede verificar el estado de NGINX ejecutando el siguiente comando.
PS sudo estado de systemctl nginx
Debería ver un mensaje que confirma que NGINX está activo (en ejecución). De lo contrario, ejecute el siguiente comando para iniciar NGINX.
PS sudo systemctl iniciar nginx
Ahora, puede abrir un navegador web e ingresar la dirección IP de su servidor. Debería ver la página predeterminada de NGINX.
Nota: Puede recuperar la dirección IP de su servidor ejecutando el siguiente comando.
PS curl ifconfig.me
O simplemente ingresa localhost en su navegador web si está conectado localmente.

Cambiar la raíz del documento NGINX predeterminada
La página web “Bienvenido a nginx” anterior se proporcionó desde la raíz del documento predeterminado, es decir, / var / www / html basado en las directivas de configuración en el archivo de bloque del servidor predeterminado. El archivo de bloque del servidor NGINX predeterminado es / etc / nginx / sites-available / default. En lugar de utilizar esta configuración predeterminada, podemos crear la nuestra.
Así es cómo.
En primer lugar, cree un directorio en / var / www que servirá como la nueva raíz del documento NGINX predeterminada. He nombrado el mío cloudindevs de acuerdo con la primera parte de mi nombre de dominio registrado. Puedes nombrar el tuyo de manera similar.
PS sudo mkdir / var / www / cloudindevs
A continuación, asegúrese de que la cuenta de servicio NGINX (www-data) tenga acceso al directorio raíz del documento.
Nota: no es obligatorio utilizar www-data. Puede crear cualquier nombre de usuario significativo y definir user
en el archivo /etc/nginx/nginx.conf.
Para cambiar la propiedad de la nueva raíz del documento a www-data, escriba:
PS sudo chown www-data: www-data / var / www / cloudindevs
Para asignar permisos, ejecute el siguiente comando chmod:
PS sudo chmod -R 755 / var / www / cloudindevs
Después de eso, puede crear un nuevo archivo de bloque del servidor NGINX copiando el existente de la siguiente manera.
PS sudo cp / etc / nginx / sites-available / default /etc/nginx/sites-available/cloudindevs.com
A continuación, edite el nuevo archivo de bloque del servidor NGINX y cambie el raíz directiva para apuntar a la nueva raíz del documento.
PS sudo nano /etc/nginx/sites-available/cloudindevs.com

El siguiente paso es activar el nuevo archivo de bloque del servidor mediante el enlace simbólico de la siguiente manera.
$ sudo ln -s /etc/nginx/sites-available/cloudindevs.com /etc/nginx/sites-enabled
Ahora puede deshabilitar el antiguo archivo de bloqueo del servidor NGINX predeterminado desvinculándolo con el siguiente comando.
PS sudo desvincular / etc / nginx / sites-enabled / default
Pruebe su configuración de NGINX con el siguiente comando.
PS sudo nginx -t
Para probar correctamente este cambio, copie el código html de muestra a continuación.
<head>
<title>Successfully changed NGINX default document root!</title>
<style>
body {
width: 35em;
margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif;
}
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx default document root was successfully changed.</p>
</body>
</html>
Cree una nueva página de índice en el nuevo directorio raíz del documento con el siguiente comando.
PS sudo nano /var/www/cloudindevs/index.html
Pegue el código html en el editor de texto, guárdelo y close el archivo.
Reinicie NGINX con el siguiente comando.
PS sudo systemctl reiniciar nginx
Finalmente, abra un navegador web e ingrese la dirección IP de su servidor.
Una vez que vea el mensaje en la imagen a continuación, estará listo.

Instalar el sistema de gestión de bases de datos MySQL
La tercera parte de la pila LEMP es MySQL – un sistema de gestión de bases de datos de código abierto de uso común para almacenar y gestionar datos de aplicaciones. MariaDB es un buen reemplazo para MySQL en la pila LEMP ya que ofrece un rendimiento mejorado. Pero en este artículo, usamos el MySQL tradicional.
Puede instalar MySQL en Ubuntu 20.04 con el siguiente comando.
PS sudo apto instalar mysql-server
Una vez instalado, puede verificar la versión de MySQL con el siguiente comando.
$ mysql –versión
Configurar MySQL
Para configurar correctamente MySQL, se recomienda que ejecute el script mysql_secure_installation de la siguiente manera.
PS sudo mysql_secure_installation
En pocas palabras, el script le pedirá que:
- Habilitar / deshabilitar el componente VALIDAR CONTRASEÑA. Esto se refiere al requisito de complejidad de la contraseña
- Establecer una nueva contraseña para el usuario root de MySQL
- Eliminar usuarios anónimos
- No permitir el inicio de sesión de root de forma remota
- Eliminar la base de datos de prueba
- Vuelva a cargar las tablas de privilegios para aplicar los cambios
Una vez que el script mysql_secure_installation se completa con un mensaje de éxito, puede iniciar sesión en MySQL.
Iniciar sesión en MySQL
Para iniciar sesión en MySQL, ejecute el siguiente comando e ingrese su contraseña de root de MySQL cuando se le solicite.
PS sudo mysql -u root -p
Deberías ver el mysql> mensaje que confirma que ahora tiene un servidor MySQL en funcionamiento.

Escribe renunciar y presione enter para cerrar sesión en MySQL.
mysql> salir
Instalar PHP
Por último, la instalación del preprocesador de hipertexto (PHP) completa la pila LEMP. PHP maneja el procesamiento dinámico de contenido web e interactúa con MySQL.
En esta sección, vamos a instalar PHP-FPM (Fast-CGI Process Manager) y configúrelo para que lo utilice el servidor web NGINX.
Instalar PHP-FPM
Ejecute el siguiente comando para instalar PHP-FPM y los componentes relacionados en Ubuntu 20.04.
PS sudo apto instalar php-fpm php-mysql
Una vez instalado, verifique la versión de PHP con el siguiente comando.
$ php -v
Configurar NGINX para usar PHP-FPM
Edite el archivo de configuración del bloque del servidor NGINX de la siguiente manera.
PS sudo nano /etc/nginx/sites-available/cloudindevs.com
Presione la flecha hacia abajo en su teclado hasta llegar a la línea que comienza con índice. Ahora, agregue index.php a la lista como se muestra en la imagen a continuación.

A continuación, vuelva a presionar la tecla de flecha hacia abajo hasta llegar a la sección titulada “pasar scripts PHP al servidor FASTCGI. “
Descomente las siguientes líneas.
location ~ .php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
}
Ahora, como quiero que mi servidor NGINX sea accesible a través de mi nombre de dominio registrado, he realizado algunos cambios adicionales en el archivo de bloqueo del servidor.
A continuación se muestra un fragmento del archivo de bloqueo del servidor después de realizar estos cambios. Si desea hacer lo mismo, puede copiar los detalles de configuración a continuación y simplemente reemplazar cloudindevs respectivamente.
server {
listen 80;
root /var/www/cloudindevs;
index index.php index.html index.htm;
server_name cloudindevs.com www.cloudindevs.com;
location / {
try_files $uri $uri/ =404;
}
location ~ .php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
}
Save cambios y close el archivo de configuración del bloque del servidor.
Nota: por defecto, PHP-FPM La configuración del grupo se almacena en el archivo /etc/php/7.4/fpm/pool.d/www.conf. Aquí puedes definir usuario y grupo por php-fpm.
Probar la configuración de PHP-FPM
Recuerde que agregamos index.php a la lista de archivos de índice en el archivo de configuración del bloque del servidor NGINX. Por lo tanto, necesitamos crear el archivo index.php en la nueva raíz del documento predeterminado de la siguiente manera.
PS sudo nano /var/www/cloudindevs/index.php
Copie el código PHP a continuación y péguelo en el editor de texto.
<?php
phpinfo();
?>
Save cambios y close el archivo.
Reinicie NGINX con:
PS sudo systemctl reiniciar nginx
Abra un navegador web e ingrese la dirección IP de su servidor o localhost si está conectado localmente. Debería ver la siguiente página que confirma que PHP-FPM está funcionando correctamente.

Por razones de seguridad, puede eliminar el archivo index.php de la siguiente manera, para evitar revelar demasiada información sobre su servidor al mundo exterior.
PS sudo rm /var/www/cloudindevs/index.php
Conclusión
Siguiendo los pasos de esta guía, ahora debería tener una plataforma LEMP que funcione en Ubuntu 20.04. Si necesita alguna aclaración con respecto a esta guía, háganoslo saber en la sección de comentarios a continuación.