Cómo instalar un stack LEMP (Linux, Nginx, MySQL y PHP) en Ubuntu 22.04


Poner en funcionamiento un servidor web para aplicaciones y sitios dinámicos es uno de los usos más típicos que puedes darle a tu VPS. En esta guía aprenderás cómo instalar un stack LEMP (Linux, Nginx, MySQL y PHP) en Ubuntu 22.04. Esta combinación de sistema operativo, servidor web, base de datos relacional y lenguaje del lado del servidor es ampliamente utilizada para alojar y desarrollar aplicaciones web dinámicas.

Requisitos previos

Paso 1: Actualización e instalación de paquetes

Para comenzar con la instalación del stack LEMP en Ubuntu 22.04, es fundamental actualizar el índice de paquetes de APT. De esta forma, aseguraremos que el gestor utilice la información más reciente al instalar cada componente en un paso posterior. También, aprovecharemos para actualizar el software actualmente instalado en el servidor. Para hacer ambas cosas, ejecuta los siguientes comandos en la terminal:

sudo apt update && sudo apt upgrade

A continuación, procederemos a la instalación de Nginx, MySQL y PHP, junto con sus respectivas dependencias. Estos componentes son necesarios para crear un entorno web dinámico y eficiente. Con el siguiente comando podrás instalarlos todos de una vez:

sudo apt install nginx mysql-server php-fpm php-mysql

Para chequear la versión de PHP-FPM que acabas de instalar (que necesitarás más adelante en una configuración), utiliza dpkg -l | grep fpm.

Una vez finalizada la instalación, verifiquemos que el servidor web Nginx y el motor de base de datos MySQL estén en ejecución de la siguiente manera:

systemctl status nginx mysql

Si la instalación fue exitosa, el resultado debería ser similar al siguiente mensaje:

En caso de que alguno de estos servicios no apareciera como activo y en ejecución, inícialo a través de sudo systemctl start seguido del nombre (nginx o mysql).

Paso 2: Asegurar el motor de datos MySQL

Aunque MySQL se encuentra en funcionamiento, es crucial abordar varios aspectos de seguridad manualmente por separado. Para facilitar esta tarea, utilizaremos sudo mysql_secure_installation. Con esta herramienta, podremos realizar las siguientes acciones:

  1. Elegir la contraseña de root de MySQL (que es algo separado de la cuenta que lleva el mismo nombre a nivel del sistema operativo).
  2. Prohibir todas las conexiones externas a la base de datos empleando dicha cuenta.
  3. Borrar cualquier cuenta de usuario que sea anónima.
  4. Remover la base de datos de prueba.

El comando que mencionamos arriba nos permitirá validar contraseñas. Aunque esta funcionalidad no es obligatoria, activarla garantizará que las contraseñas que emplees en MySQL sean seguras. Tendrás la posibilidad de elegir entre diferentes niveles de seguridad:

  • BAJO obliga a elegir contraseñas de al menos ocho caracteres sin un patrón específico.
  • MEDIO requiere incluir letras mayúsculas y minúsculas, números, como mínimo un carácter especial, y una longitud de al menos ocho caracteres.
  • FUERTE equivale al nivel MEDIO con el agregado de la verificación contra un diccionario de palabras para evitar contraseñas comunes.

Una vez que selecciones el nivel que desees, deberás confirmar las demás configuraciones con y o Y para continuar. Al finalizar, aparecerá el mensaje All done! por pantalla. Esto te dará la pauta de que has completado esta fase de configuración con éxito.

Paso 3: Habilitar la integración de PHP en Nginx

Nginx usa /var/www/html como directorio raíz, como se especifica en el archivo de configuración del sitio por defecto. Este recibe el nombre de default y puedes encontrarlo en /etc/nginx/sites-enabled/default. Para permitir el uso de PHP en este sitio, se requiere descomentar las líneas relevantes y editar la versión de PHP-FPM en caso de que no coincida con la que instalaste antes, tal como observas a continuación. La otra alternativa (PHP-CGI) debe mantenerse desactivada comentando la línea correspondiente con un # al principio.

cd /etc/nginx/sites-enabled
sudo nano default
como instalar un stack lemp en ubuntu 22.04 2

Ahora procede a crear un archivo con el nombre info.php dentro de la carpeta /var/www/html con el contenido que aparece en el segundo bloque de código. Dado que este archivo solo contiene código PHP, no es necesario utilizar la etiqueta de cierre ?> después de la función phpinfo().

cd /var/www/html
sudo nano info.php

Una vez que guardes los cambios, reinicia Nginx para aplicar la configuración actual:

sudo systemctl restart nginx

Verifica que Nginx y PHP están trabajando juntos visitando

http://AAA.BBB.CCC.DDD/info.php

en tu navegador, después de cambiar AAA.BBB.CCC.DDD con la dirección IP pública o el nombre de host de tu servidor.

Al acceder a la dirección anterior, verás los detalles de la instalación actual de PHP, como ves en la siguiente imagen:

como instalar un stack lemp en ubuntu 22.04 3

Esto te asegura que Nginx y PHP están funcionando juntos correctamente. En el próximo paso, harás una prueba similar con el fin de chequear la integración con MySQL.

Paso 4: Realizar la conexión con la base de datos MySQL

Si bien no has creado una base de datos aún, es posible chequear la conexión entre PHP y MySQL como explicamos a continuación.

Paso 4a: Configurar un usuario distinto de root

Antes de crear una base de datos, es recomendable crear un usuario específico para MySQL en lugar de usar la cuenta de root. Para hacerlo, accede al prompt de MySQL ejecutando el siguiente comando:

sudo mysql

Ahora ejecuta la siguiente sentencia SQL, asegurándote de reemplazar gabriel y Abc1234# con otras credenciales que hayas elegido:

CREATE USER 'gabriel'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Abc1234#';

Para salir del prompt de MySQL y regresar a la línea de comandos de Linux, escribe \q o exit y presiona Enter.

Paso 4b: Creación de un archivo PHP

cd /var/www/html
sudo touch estado-mysql.php
sudo nano estado-mysql.php

Copia y pega las siguientes líneas en el archivo. Nuevamente, recuerda cambiar el nombre de usuario y contraseña por los que hayas empleado en 4a.

connect_error) {
  die("La conexión falló: " . $con->connect_error);
} else {
  $estado = explode('  ', $con->stat());
  print_r($estado);
}
// Cerrar conexión
$con->close();

Conclusión

Al completar esta guía has aprendido cómo configurar un Stack LEMP en un servidor Ubuntu 22.04. ¡Felicitaciones por este logro!




¿Estás ampliando tus conocimientos en el mundo del hosting? En Full Tech Solutions, tenemos los planes de Cloud Hosting perfectos para acompañar tu crecimiento. Descubre un servicio optimizado, confiable y diseñado para adaptarse a tus necesidades. ¡Elige la mejor opción para llevar tu proyecto al siguiente nivel!

¡Gracias por confiar en nosotros como su aliado! 🔒 Juntos estamos construyendo un mundo digital más seguro.

ESCRIBIR UN COMENTARIO

¿Qué está pensando?

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *