Joomla instalación · 7 min read · Sep 12, 2025
Cómo instalar Joomla con Nginx en el servidor Ubuntu 24.04

Joomla es un sistema de gestión de contenido flexible y de código abierto para construir sitios web y publicaciones en línea. Impulsado por PHP, se puede utilizar para múltiples escenarios, como foros, galerías de fotos, comercio electrónico y otras aplicaciones basadas en la web.
En esta guía, te mostraremos cómo instalar Joomla en el servidor Ubuntu 24.04. Ejecutarás Joomla con Nginx como servidor web, MariaDB como servidor de base de datos y PHP-FPM. También asegurarás Joomla con HTTPS.
Prerrequisitos
Para completar esta guía, asegúrate de tener lo siguiente:
- Un servidor Ubuntu 24.04.
- Un usuario no root con privilegios de administrador.
- Un nombre de dominio apuntando a una dirección IP del servidor.
Instalando dependencias
Joomla es un sistema de gestión de contenido basado en PHP. Para instalarlo, debes instalar PHP en tu sistema. En esta sección, instalarás el LEMP Stack (Linux, Nginx, MariaDB y PHP-FPM) como dependencias para Joomla.
Primero, ejecuta el siguiente comando para actualizar el índice de paquetes de Ubuntu.
sudo apt update
Instala las dependencias del LEMP Stack con el siguiente comando. Ingresa ‘ Y ‘ para confirmar la instalación.
sudo apt install nginx mariadb-server php-fpm php-curl php-common php-json php-intl php-xml php-gd php-mysql php-imagick php-mbstring php-zip
Después de completar la instalación, verifica el estado del servicio Nginx con lo siguiente:
sudo systemctl is-enabled nginx
sudo systemctl status nginxPuedes ver que el servicio Nginx está en ejecución.

Ahora verifica el servicio MariaDB para asegurarte de que el servicio esté en ejecución y habilitado con el siguiente comando:
sudo systemctl is-enabled mariadb
sudo systemctl status mariadb
Por último, ejecuta el siguiente comando para verificar el servicio PHP-FPM. El PHP-FPM debería estar en ejecución por defecto en el archivo sock.
sudo systemctl is-enabled php8.3-fpm
sudo systemctl status php8.3-fpm
Configurando PHP-FPM
Ahora que el LEMP Stack está instalado, configurarás la instalación de PHP-FPM y cambiarás algunas configuraciones predeterminadas según sea necesario para Joomla.
Abre la configuración de PHP-FPM ‘ /etc/php/8.3/fpm/php.ini ‘ con el editor ‘ nano ‘.
sudo nano /etc/php/8.3/fpm/php.iniCambia la configuración predeterminada con lo siguiente:
memory_limit=512M
upload_max_filesize=64M
post_max_size=64M
max_execution_time=120
output_buffering = Off
extension=intlGuarda el archivo y sal del editor.
Ahora reinicia el servicio PHP-FPM para aplicar tus cambios.
sudo systemctl restart php8.3-fpmPor último, puedes verificar el archivo sock de PHP para el servicio PHP-FPM con el siguiente comando.
ss -pl | grep phpPuedes ver a continuación que el archivo sock para PHP-FPM se encuentra en ‘ /var/run/php/php8.3-fpm.sock ‘.

Configurando el servidor MariaDB
En esta sección, asegurarás la instalación del servidor MariaDB y luego crearás una nueva base de datos y usuario para Joomla. Utilizarás ‘mariadb-secure-installation’ para asegurar el servidor MariaDB y luego a través del cliente ‘mariadb’ para crear una nueva base de datos y usuario.
Para asegurar el servidor MariaDB, ejecuta el comando ‘ mariadb-secure-installation ‘ a continuación.
sudo mariadb-secure-installationAhora se te pedirá que configures el servidor MariaDB con lo siguiente:
- Para la instalación predeterminada del servidor MariaDB sin una contraseña de root, presiona ENTER cuando se te pregunte sobre la contraseña.
- La autenticación local para los usuarios root de MariaDB está asegurada por defecto, ingresa ‘n’ cuando se te pregunte si deseas cambiar el método de autenticación a ‘unix_socket’.
- Ingresa ‘Y’ para crear una nueva contraseña de root de MariaDB. Luego, ingresa la contraseña fuerte para tu usuario root de MariaDB y repítela.
- Cuando se te pregunte si deseas deshabilitar la autenticación remota para el usuario root de MariaDB, ingresa ‘Y’ para aceptar.
- La instalación predeterminada del servidor MariaDB viene con la base de datos ‘test’ y permite que un usuario anónimo acceda a ella.
- Ingresa ‘Y’ para ambas configuraciones para eliminar la base de datos predeterminada ‘test’ y eliminar el privilegio anónimo.
- Por último, ingresa ‘Y’ para confirmar la recarga de los privilegios de la tabla.
Una vez que MariaDB esté asegurado, crearás una nueva base de datos y usuario para Joomla.
Inicia sesión en el servidor MariaDB con el comando ‘ mariadb ‘ a continuación. Ingresa tu contraseña de root de MariaDB cuando se te solicite.
sudo mariadb -u root -pAhora ejecuta las siguientes consultas para crear una nueva base de datos ‘ joomladb ‘, y un nuevo usuario ‘ joomla ‘ con la contraseña ‘ p4ssword ‘.
CREATE DATABASE joomladb;
CREATE USER joomla@localhost IDENTIFIED BY 'p4ssword';
GRANT ALL PRIVILEGES ON joomladb.* TO joomla@localhost;
FLUSH PRIVILEGES;
A continuación, ejecuta la consulta a continuación para verificar los privilegios del usuario ‘ joomla ‘. Verás que el usuario ‘ joomla ‘ puede acceder a la base de datos ‘ joomladb ‘.
SHOW GRANTS FOR joomla@localhost;Por último, escribe ‘ quit ‘ para salir del servidor MariaDB.

Descargando el código fuente de Joomla
En este punto, has instalado y configurado las dependencias para Joomla. Ahora descargarás el código fuente de Joomla y configurarás el directorio document-root/webroot para la instalación de Joomla.
Ve al directorio ‘/var/www’ y descarga el código fuente de Joomla con el comando ‘wget’ a continuación. Consulta la página de descarga de Joomla y obtén el enlace para la última versión.
cd /var/www/
wget https://downloads.joomla.org/cms/joomla5/5-1-4/Joomla_5-1-4-Stable-Full_Package.zipAhora ejecuta el comando ‘unzip’ a continuación para extraer el código fuente de Joomla en el directorio ‘joomla’.
unzip Joomla_5-1-4-Stable-Full_Package.zip -d joomlaPor último, ejecuta el comando ‘chmod’ a continuación para cambiar la propiedad del directorio ‘/var/www/joomla’ al usuario ‘www-data’.
sudo chown -R www-data:www-data /var/www/joomlaConfigurando el bloque del servidor Nginx
Ahora crearás una nueva configuración de bloque de servidor Nginx para ejecutar Joomla. Así que asegúrate de tener tu nombre de dominio listo y apuntando a la dirección IP del servidor.
Crea un nuevo archivo de servidor Nginx ‘ /etc/nginx/sites-available/joomla ‘ con el siguiente editor ‘ nano ‘.
sudo nano /etc/nginx/sites-available/joomlaInserta la configuración a continuación y cambia la opción ‘ server_name ‘ con tu nombre de dominio.
server {
listen 80;
server_name howtoforge.local;
server_name_in_redirect off;
access_log /var/log/nginx/localhost.access_log;
error_log /var/log/nginx/localhost.error_log info;
root /var/www/joomla;
index index.php index.html index.htm default.html default.htm;
# Soporte API
location /api/ {
try_files $uri $uri/ /api/index.php?$args;
}
# Soporte de URLs limpias (también conocidas como amigables para SEO)
location / {
try_files $uri $uri/ /index.php?$args;
}
# agregar encabezado global x-content-type-options
add_header X-Content-Type-Options nosniff;
# denegar la ejecución de scripts dentro de directorios escribibles
location ~* /(images|cache|media|logs|tmp)/.*\.(php|pl|py|jsp|asp|sh|cgi)$ {
return 403;
error_page 403 /403_error.html;
}
location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php8.3-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include /etc/nginx/fastcgi.conf;
}
# caché de archivos
location ~* \.(ico|pdf|flv)$ {
expires 1y;
}
location ~* \.(js|css|png|jpg|jpeg|gif|swf|xml|txt)$ {
expires 14d;
}
}Guarda el archivo y sal del editor.
Ahora ejecuta el siguiente comando para activar el bloque del servidor ‘ joomla ‘ y verificar tu configuración de Nginx. Si tienes configuraciones de Nginx adecuadas, verás una salida ‘ Syntax is OK ‘.
sudo ln -s /etc/nginx/sites-available/joomla /etc/nginx/sites-enabled/
sudo nginx -tPor último, ejecuta el comando ‘systemctl’ a continuación para reiniciar el servicio Nginx y aplicar tus cambios.
sudo systemctl restart nginx
Asegurando Joomla con HTTPS
En esta guía, asegurarás Joomla con HTTPS. Si estás utilizando el dominio público, puedes asegurar Joomla a través de certificados SSL/TLS mediante Certbot y Letsencrypt.
Instala ‘Certbot’ y el complemento Certbot Nginx con el comando ‘apt’ a continuación. Ingresa ‘Y’ para confirmar la instalación.
sudo apt install certbot python3-certbot-nginxDespués de que la instalación esté completa, ejecuta el siguiente comando ‘certbot’ para generar certificados SSL/TLS y asegurar tu instalación de Joomla con HTTPS. Asegúrate de cambiar el nombre de dominio y la dirección de correo electrónico con tu información.
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d howtoforge.localCuando termines, tu instalación de Joomla estará asegurada con HTTPS a través de certificados SSL/TLS de Letsencrypt.
Instalando Joomla
Abre tu navegador web y visita tu nombre de dominio de Joomla como https://howtoforge.local/. Verás el asistente de instalación de Joomla.
Selecciona tu idioma predeterminado e ingresa el nombre de tu sitio.

Ingresa el nuevo usuario administrador, correo electrónico y contraseña para Joomla.

Ingresa los detalles de tu base de datos MariaDB y usuario, luego haz clic en ‘ Instalar Joomla ‘ para continuar con la instalación.

Después de que la instalación esté completa, haz clic en ‘ Abrir sitio ‘ para abrir la página de inicio predeterminada, o ‘ Abrir Administrador ‘ para acceder al panel de administración de Joomla.

Para la página de inicio predeterminada de Joomla, verás lo siguiente.

Ahora ingresa tu usuario administrador y contraseña y haz clic en ‘ Iniciar sesión ‘.

Si tienes el usuario y la contraseña correctos, verás el siguiente panel de administración de Joomla.

Conclusión
¡Felicidades! Has instalado Joomla en el servidor Ubuntu 24.04. Tienes Joomla en funcionamiento con el servidor web Nginx, el servidor de base de datos MariaDB y PHP-FPM. También has asegurado Joomla con HTTPS a través de Certbot y Letsencrypt.
Recibe nuevas publicaciones en tu bandeja de entrada.
No spam. Cancela la suscripción en cualquier momento.