Como Instalar LEMP Stack en Ubuntu

Hoy aprenderemos a instalar uno de los Stacks para servidores que nos va a permitir correr varias aplicaciones de Php como por ejemplo WordPress. Al finalizar este tutorial habrás aprendido que es un Stack para servidores y como instalar uno desde cero.

Antes de comenzar​

Antes de comenzar vamos a aclarar unos puntos, utilizaremos el LEMP Stack para nuestro servidor web, ahora bien que es el famosos LEMP Stack, que seguramente ya habías escuchado este término, el LEMP Stack se refiere a: L – sistema operativo Linux, E – Nginx como servidor web, M – Mysql como motor de base de datos y P – Php como lenguaje a ejecutar.
Te invito a leer mas sobre cada parte de nuestro Stack en los siguientes enlaces:
Ahora si ya estamos listos para iniciar con nuestra instalación, para este tutorial estaremos utilizando un VPS de Digital Ocean, si ya cuentas con un VPS ¡Enhorabuena! Si no puedes adquirir uno en el siguiente enlace.

Paso 1 - Instalar Nginx

Primero vamos a instalar Nginx en nuestro VPS con Ubuntu, este paso es bastante sencillo únicamente ejecutamos el siguiente comando:
sudo apt update
sudo apt install nginx
Durante la instalación se nos va a preguntar si deseamos instalar el componente a lo que vamos a presionar la tecla Y y luego enter.
Listo ya contamos con Nginx instalado en nuestro servidor. Para revisar el estado de nuestro web server podemos ejecutar el siguiente comando :
sudo service nginx status
Por últimos podemos verificar que todo este funcionado correctamente al colocar la IP de nuestro servidor en cualquier explorador web, lo cual nos deberá de mostrar la pantalla de bienvenida de Nginx

Paso 2 - Instalar MySql

Luego vamos a instalar nuestro motor de base de datos que en nuestro caso será MySql, para eso vamos a ejecutar el siguiente comando:
sudo apt install mysql-server
Durante la instalación se nos va a preguntar si deseamos instalar el componente a lo que vamos a presionar la tecla Y y luego enter.
Cuando terminemos de instalar MySql es recomendado que ejecutemos nuestro script de seguridad, este paso es totalmente opcional, pero te recomiendo si lo ejecutes especialmente si será un servidor de producción. Para llevar a cabo nuestra instalación segura vamos a ejecutar el siguiente script:
sudo mysql_secure_installation
A continuación, la instalación nos va a pedir que configuremos el plugin de validación de contraseñas, si deseamos habilitarlo vamos a presionar Y y luego enter, o N y luego enter si no deseamos habilitarlo.
Al decidir habilitar el plugin de validación de contraseñas se nos van a presentar las siguientes opciones:
There are three levels of password validation policy:

LOW    Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary              file

Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 
A lo cual vamos a responder de acuerdo con nuestras necesidades, 0 para únicamente tener una contraseña mayor a 8 caracteres, 1 si deseamos tener una contraseña mayor a 8 caracteres con mayúsculas y caracteres especiales, y 2 si deseamos tener todo lo anterior mas un diccionario de validaciones.
Lugo tras haber indicado si queríamos habilitar el plugin de validación de contraseñas, vamos a tener que especificar una contraseña para el usuario root.
Listo una vez configurada nuestra instalación segura ya podemos acceder a MySql con el siguiente comando:
sudo mysql

Paso 3 - instalar Php

Ya tenemos Nuestro Servidor Web y nuestro motor de base de datos, únicamente nos faltaría nuestro Runtime de php para tener nuestro Stack completo. Para proceder a instalar Php en nuestro servidor vamos a ejecutar el siguiente comando:
sudo apt install php-fpm php-mysql
Durante la instalación se nos va a preguntar si deseamos instalar el componente a lo que vamos a presionar la tecla Y y luego enter.
¡Listo! Ya contamos con Php instalado en nuestro Servidor, únicamente nos hace falta configurarlo para que Nginx lo pueda utilizar para poder ejecutar los archivos de Php.

Paso 4 - Configurar Nginx para ejecutar Php

Para la siguiente configuración utilizaremos nuestra dirección por defecto para poder realizar la configuración, sin embargo, Nginx tiene la capacidad de se configurado por medio de Server Blocks, te invito a que leas más acerca del tema para que puedas conocer un poco mas acerca de esta configuración.
Para comenzar necesitamos habilitar Php dentro de nuestra configuración de Nginx para lo cual vamos a editar nuestro archivo por defecto llamado Default, este archivo lo podemos encontrar en la siguiente ruta /etc/nginx/sites-available o bien ejecutando el siguiente comando:
sudo nano /etc/nginx/sites-available/default
Una vez dentro del archi vamos a habilitar el socket de Php agregando la siguiente configuración:
server {
    …

    index index.html index.htm index.php;

    location / {
        try_files $uri $uri/ =404;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
     }

   …..
}
Listo esto va a configurar el servidor para poder utilizar Php para ejecutar la solicitud. Una vez realizado esto solo faltaría reiniciar nuestro web server para que los cambios tomen efecto, esto lo podemos realizar con el siguiente comando
sudo service nginx reload
¡Enhorabuena! Ya contamos con nuestro servidor configurado con todo lo necesario para poder ejecutar aplicaciones en Php con Mysql. Te recomiendo revisar este otro tutorial para que aprendas a asegurar con un certificado SSL tu nuevo servidor.

Siguientes pasos

Hoy en día muchos de los proveedores de servidores y VPS ofrecen maquinas virtuales con LEMP Stack ya instalado y configurado, por acá te dejo una opción en Digital Ocean por si deseas instalar un servidor con LEMP Stack de manera automática. Puedes ver la imagen a instalar en el siguiente enlace.

Conclusión

Instalar los componentes necesarios para ejecutar aplicaciones desde nuestro propio servidor dedicado es mucho mas sencillo de lo que parece, mas aun con todas las facilidades que los proveedores de servidores dedicados nos ofrecen. Esta configuración nos es de utilidad ya que sobre este servidor podríamos instalar varios sitios de WordPress, por ejemplo, y tener nuestro propio servicio de Hosting.

Leave a Comment

Scroll to Top