Cómo instalar Joomla con Nginx en un servidor Ubuntu 24.04
Joomla es un gestor de contenidos flexible y de código abierto para crear sitios web y publicaciones en línea. Desarrollado por PHP, puede utilizarse para múltiples escenarios, como foros, galerías de fotos, comercio electrónico y otras aplicaciones basadas en web.
En esta guía, te mostraremos cómo instalar Joomla en un servidor Ubuntu 24.04. Ejecutarás Joomla con Nginx como servidor web, servidor de base de datos MariaDB y PHP-FPM. También asegurarás Joomla con HTTPS.
Requisitos previos
Para completar esta guía, asegúrate de que tienes 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.
Instalación de dependencias
Joomla es un sistema de gestión de contenidos basado en PHP. Para instalarlo, debes instalar PHP en tu sistema. En esta sección, instalarás la pila LEMP (Linux, Nginx, MariaDB y PHP-FPM) como dependencias para Joomla.
En primer lugar, ejecuta el siguiente comando para actualizar el índice de paquetes de Ubuntu.
sudo apt update
Instala las dependencias de la Pila LEMP con el siguiente comando. Introduce‘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
Una vez completada la instalación, comprueba el estado del servicio Nginx con lo siguiente:
sudo systemctl is-enabled nginx sudo systemctl status nginx
Puedes ver que el servicio Nginx se está ejecutando.
Ahora comprueba el servicio MariaDB para asegurarte de que el servicio se está ejecutando y está habilitado con el comando siguiente:
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 ejecutándose por defecto en el archivo sock.
sudo systemctl is-enabled php8.3-fpm sudo systemctl status php8.3-fpm
Configurar PHP-FPM
Ahora que la Pila LEMP está instalada, 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.ini
Cambia la configuración por defecto con lo siguiente:
memory_limit=512M upload_max_filesize=64M post_max_size=64M max_execution_time=120 output_buffering = Off extension=intl
Guarda el archivo y sal del editor.
Ahora reinicia el servicio PHP-FPM para aplicar tus cambios.
sudo systemctl restart php8.3-fpm
Por último, puedes comprobar el archivo sock de PHP para el servicio PHP-FPM con el siguiente comando.
ss -pl | grep php
Puedes ver a continuación que el archivo sock para PHP-FPM se encuentra en‘/var/run/php/php8.3-fpm.sock‘.
Configurar 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 un nuevo 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 un nuevo usuario.
Para asegurar el servidor MariaDB, ejecuta el comando‘mariab-secure-installation‘ que aparece a continuación.
sudo mariadb-secure-installation
Ahora se te pedirá que configures el servidor MariaDB con lo siguiente:
- Para la instalación por defecto del servidor MariaDB sin contraseña de root, pulsa ENTER cuando se te pregunte por la contraseña.
- La autenticación local para los usuarios root de MariaDB está asegurada por defecto, introduce ‘n’ cuando se te pregunte si quieres cambiar el método de autenticación a ‘unix_socket’.
- Introduce «Y» para crear una nueva contraseña de root de MariaDB. A continuación, introduce la contraseña segura de tu usuario raíz de MariaDB y repite la operación.
- Cuando se te pida que desactives la autenticación remota para el usuario raíz de MariaDB, introduce «Y» para aceptar.
- La instalación por defecto del servidor MariaDB viene con la base de datos «test» y permite que un usuario anónimo acceda a ella.
- Introduce «Y» en ambas opciones para eliminar la base de datos «test» por defecto y el privilegio anónimo.
- Por último, introduce «Y» para confirmar los privilegios de recarga de tablas.
Una vez asegurada la MariaDB, crearás una nueva base de datos y un nuevo usuario para Joomla.
Accede al servidor MariaDB con el siguiente comando‘mariadb‘. Introduce tu contraseña de root de MariaDB cuando te lo pida.
sudo mariadb -u root -p
Ahora 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 siguiente consulta para comprobar 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.
Descargar el código fuente de Joomla
Llegados a este punto, ya 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’ que aparece a continuación. Comprueba la página de descargas de Joomla y coge el enlace de la última versión.
cd /var/www/ wget https://downloads.joomla.org/cms/joomla5/5-1-4/Joomla_5-1-4-Stable-Full_Package.zip
Ahora ejecuta el comando «unzip» para extraer el código fuente de Joomla al directorio «joomla».
unzip Joomla_5-1-4-Stable-Full_Package.zip -d joomla
Por último, ejecuta el comando «chmod» para cambiar la propiedad del directorio «/var/www/joomla» al usuario «www-data».
sudo chown -R www-data:www-data /var/www/joomla
Configurar el bloque del servidor Nginx
Ahora vas a crear una nueva configuración de bloque de servidor Nginx para ejecutar Joomla. Así que asegúrate de que tienes 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/joomla
Introduce la configuración que aparece a continuación y cambia la opción‘nombre_servidor‘ por el nombre de tu 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; # Support API location /api/ { try_files $uri $uri/ /api/index.php?$args; } # Support Clean (aka Search Engine Friendly) URLs location / { try_files $uri $uri/ /index.php?$args; } # add global x-content-type-options header add_header X-Content-Type-Options nosniff; # deny running scripts inside writable directories 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; } # caching of files 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 de servidor‘joomla‘ y verifica tu configuración de Nginx. Si la configuración de Nginx es correcta, verás una salida‘Syntax is OK‘.
sudo ln -s /etc/nginx/sites-available/joomla /etc/nginx/sites-enabled/ sudo nginx -t
Por último, ejecuta el siguiente comando ‘systemctl’ para reiniciar el servicio Nginx y aplicar tus cambios.
sudo systemctl restart nginx
Proteger Joomla con HTTPS
En esta guía, asegurarás Joomla con HTTPS. Si estás utilizando el dominio público, puedes asegurar Joomla mediante certificados SSL/TLS a través de Certbot y Letsencerypt.
Instala ‘Certbot’ y el plugin Certbot Nginx con el siguiente comando ‘apt’. Introduce ‘Y’ para confirmar la instalación.
sudo apt install certbot python3-certbot-nginx
Una vez completada la instalación, 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.local
Cuando hayas terminado, tu instalación de Joomla estará protegida con HTTPS mediante certificados SSL/TLS de Letsencrypt.
Instalar Joomla
Abre tu navegador web y visita tu nombre de dominio Joomla, como https://howtoforge.local/. Verás el asistente de instalación de Joomla.
Selecciona tu idioma por defecto e introduce el nombre de tu sitio.
Introduce el nuevo usuario administrador, correo electrónico y contraseña para Joomla.
Introduce los detalles de tu base de datos MariaDB y el usuario, y haz clic en«Instalar Joomla» para proceder con la instalación.
Una vez completada la instalación, haz clic en«Abrir sitio» para abrir la página de inicio predeterminada, o en«Abrir administrador» para acceder al panel de administración de Joomla.
En la página de inicio predeterminada de Joomla, verás lo siguiente.
Ahora introduce tu usuario y contraseña de administrador 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
¡Enhorabuena! Has instalado Joomla en el servidor Ubuntu 24.04. Has puesto en marcha Joomla 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.