Introducción
En este tutorial, aprenderá a instalar una pila LEMP (Linux, NGINX, base de datos MySQL, PHP) en Ubuntu 24.04 LTS. Al finalizar este tutorial, tendrá un servidor de pila LEMP completamente funcional.
Requisitos previos
- Servidor con Ubuntu 24.04 LTS
- Acceso al usuario root o a un usuario con permisos sudo
- nano o su editor de texto favorito instalado.
Paso 1 – Actualizar el servidor
Utilice el siguiente comando para actualizar los repositorios de paquetes para garantizar que instalemos la última versión del software:
sudo apt update
Luego use el siguiente comando para actualizar los paquetes instalados actualmente:
sudo apt dist-upgrade -yLa bandera -y confirma automáticamente la operación, por lo que no necesita escribir Y para continuar.
Paso 2: Instalar NGINX
NGINX es el servidor web que utilizaremos, podemos instalarlo usando el siguiente comando:
sudo apt install nginx -y
Paso 3 – Instalar MySQL
Ahora podemos instalar MySQL Server. La base de datos que usaremos es MySQL. Podemos instalarla con el siguiente comando:
sudo apt install mysql-server -y
Paso 4 – Proteger MySQL
Proteja el servidor MySQL recién instalado utilizando el siguiente comando:
sudo mysql_secure_installation
MySQL le pedirá que confirme la contraseña:
VALIDATE PASSWORD COMPONENT can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD component?
Press y|Y for Yes, any other key for No:Puede presionar Y y luego ENTER.
Establezca la política de validación de contraseñas. Hay tres niveles:
0: BAJA Longitud >= 81: MEDIO Longitud >= 8, numérico, mayúsculas y minúsculas y caracteres especiales2: FUERTE Longitud >= 8, numérico, mayúsculas y minúsculas, caracteres especiales y archivo de diccionario
Seleccione el número apropiado y presione ENTER. Recomiendo elegir una contraseña segura (número 2).
MySQL le preguntará si desea eliminar usuarios anónimos:
By default, a MySQL installation has an anonymous user,
allowing anyone to log into MySQL without having to have
a user account created for them. This is intended only for
testing, and to make the installation go a bit smoother.
You should remove them before moving into a production
environment.
Remove anonymous users? (Press y|Y for Yes, any other key for No) :Para continuar, presione Y y luego ENTER.
A continuación, MySQL le preguntará si desea prohibir el inicio de sesión root remoto:
Normally, root should only be allowed to connect from
'localhost'. This ensures that someone cannot guess at
the root password from the network.
Disallow root login remotely? (Press y|Y for Yes, any other key for No) :Para continuar, presione Y y luego ENTER.
A continuación, MySQL le preguntará si desea eliminar y acceder a la base de datos de prueba:
By default, MySQL comes with a database named 'test' that
anyone can access. This is also intended only for testing,
and should be removed before moving into a production
environment.
Remove test database and access to it? (Press y|Y for Yes, any other key for No) :Para continuar, presione Y y luego ENTER.
Ahora, por última vez, MySQL le preguntará si desea volver a cargar las tablas de puntuación:
Reloading the privilege tables will ensure that all changes made so far will take effect immediately.
Reload privilege tables now? (Press y|Y for Yes, any other key for No) :Para continuar, presione Y y luego ENTER.
Listo. Ya tienes un servidor MySQL seguro.
Paso 5 – Instalar PHP
Ubuntu 24.04 debería tener la última versión estable de PHP. Puedes comprobarlo:
apt list | grep '^php[0-9]*-\(fpm\|mysql\)'
Instalar PHP:
sudo apt install php8.3-fpm php8.3-mysql -y
php8.3-fpm es el administrador de procesos FastCGI que nos permite utilizar PHP en NGINX.
php8.3-mysql es una extensión que permite a PHP interactuar con el servidor MySQL.
En este punto has terminado de instalar los paquetes.
Paso 6: Configurar NGINX para PHP
De forma predeterminada, NGINX no maneja archivos PHP, por lo que necesitamos editar el archivo de configuración predeterminado.
Utilice su editor de texto favorito para editar el archivo de configuración predeterminado, usaré nano.
sudo nano /etc/nginx/sites-available/default
En este archivo, debemos desplazarnos un poco hacia abajo, dentro del bloque del servidor, después de la ubicación/directiva, debemos agregar lo siguiente:
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php8.3-fpm.sock;
}Si tiene instalada una versión diferente de PHP, puede cambiarla aquí.
Esto le dice a NGINX que envíe todos los archivos con la extensión .php al administrador de procesos FastCGI que instalamos anteriormente.
También puedes agregar index.php a la lista aquí:
index index.html index.htm index.nginx-debian.html index.php;
Guarde el archivo y luego salga. (CTRL+X,Y, ENTER) para nano.
Ejecute el siguiente comando para comprobar si la configuración de NGINX es correcta:
sudo nginx -t
Deberías ver algo como esto:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successfulLuego reinicie NGINX usando el siguiente comando:
sudo service nginx restart
Paso 7 – Verificar si PHP funciona o no
Ahora, verifiquemos si PHP funciona con NGINX. Podemos crear un script PHP simple de "Hola Mundo".
El directorio raíz predeterminado para NGINX es /var/www/html.
Creemos un archivo hello.php en ese directorio:
sudo nano /var/www/html/hello.php
Dentro del archivo, agregue el siguiente contenido:
<?php
echo 'Hello, World!';Guarde el archivo y luego salga. (CTRL+X,Y, ENTER) para nano.
Ahora podemos ir a http:// en nuestro navegador. Acceso a /hello.php.
Para obtener la dirección IP pública de su servidor, utilice el siguiente comando:
hostname -I
Si eso no funciona, intente usar cURL para obtener la dirección IP pública del servidor:
curl -4 https://ip.hetzner.com
Deberías ver esto:
Conclusión
Has instalado correctamente una pila LEMP en Ubuntu 24.04 LTS. Puedes empezar a implementar tus aplicaciones de pila LEMP. ¡Mucha suerte!









