Cómo instalar Joomla con Apache y Let’s Encrypt SSL en Ubuntu 22.04

Joomla es un sistema de gestión de contenidos gratuito, de código abierto y premiado que te permite crear sitios y aplicaciones web en línea. Está escrito en PHP y utiliza MySQL como base de datos. Joomla ofrece algunas características excelentes que ayudan a los usuarios a organizar y gestionar el contenido de forma eficiente. Es extensible, fácil de usar, amigable con los motores de búsqueda y proporciona una interfaz web fácil de usar para gestionar tu sitio web desde el lugar central.

En este post, te mostraremos cómo instalar Joomla CMS con Apache y Let’s Encrypt SSL en Ubuntu 22.04.

Requisitos previos

  • Un servidor con Ubuntu 22.04.
  • Un nombre de dominio válido apuntado con la IP de tu servidor.
  • Una contraseña de root configurada en el servidor.

Instalar el servidor LAMP

En primer lugar, instala el servidor web Apache, el servidor de bases de datos MySQL y la última versión de PHP con otras extensiones utilizando el siguiente comando:

apt install apache2 mysql-server php8.1 libapache2-mod-php8.1 php8.1-dev php8.1-bcmath php8.1-intl php8.1-soap php8.1-zip php8.1-curl php8.1-mbstring php8.1-mysql php8.1-gd php8.1-xml unzip -y

Una vez instalados todos los paquetes, verifica la versión de PHP con el siguiente comando:

php -v

Deberías ver la siguiente salida:

PHP 8.1.2 (cli) (built: Apr  7 2022 17:46:26) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.2, Copyright (c) Zend Technologies
    with Zend OPcache v8.1.2, Copyright (c), by Zend Technologies

Una vez que hayas terminado, puedes pasar al siguiente paso.

Crear una base de datos MySQL para Joomla

A continuación, tendrás que crear una base de datos y un usuario para que Joomla almacene el contenido de la web. Primero, conéctate al MySQL con el siguiente comando:

mysql

Una vez conectado, crea una base de datos y un usuario con el siguiente comando:

mysql> CREATE DATABASE joomladb;
mysql> CREATE USER 'joomlauser'@'localhost' IDENTIFIED BY 'securepassword';

A continuación, concede todos los privilegios a la base de datos de Joomla con el siguiente comando:

mysql> GRANT ALL ON joomladb.* TO 'joomlauser'@'localhost';

A continuación, vacía la tabla de privilegios y sal del MySQL con el siguiente comando:

mysql> FLUSH PRIVILEGES;
mysql> EXIT;

Una vez que hayas terminado, puedes pasar al siguiente paso.

Descargar Joomla

En el momento de escribir este tutorial, la última versión de Joomla es la 4.2.1. Puedes descargarla desde su web oficial con el siguiente comando:

wget https://downloads.joomla.org/cms/joomla4/4-1-2/Joomla_4-1-2-Stable-Full_Package.zip

Una vez completada la descarga, descomprime el archivo descargado en el directorio raíz de la web de Apache con el siguiente comando:

unzip Joomla_4-1-2-Stable-Full_Package.zip -d /var/www/html/joomla

A continuación, cambia la propiedad y el permiso de Joomla con el siguiente comando:

chown -R www-data:www-data /var/www/html/joomla/
chmod -R 755 /var/www/html/joomla/

Una vez que hayas terminado, puedes pasar al siguiente paso.

Crear un host virtual de Apache para Joomla

A continuación, tendrás que crear un archivo de configuración del host virtual de Apache para Joomla. Puedes crearlo con el siguiente comando:

nano /etc/apache2/sites-available/joomla.conf

Añade las siguientes líneas:

<VirtualHost *:80>

ServerAdmin [email protected]

ServerName joomla.example.com
DocumentRoot /var/www/html/joomla

<Directory /var/www/html/joomla/>
        Options FollowSymlinks
        AllowOverride All
        Require all granted
</Directory>

ErrorLog ${APACHE_LOG_DIR}/example.com_error.log
CustomLog ${APACHE_LOG_DIR}/example.com_access.log combined

</VirtualHost>

Guarda y cierra el archivo y luego activa el host virtual de Joomla con el siguiente comando:

a2ensite joomla.conf

A continuación, reinicia el servicio Apache para aplicar los cambios:

systemctl restart apache2

También puedes comprobar el estado del servicio Apache con el siguiente comando:

systemctl status apache2

Obtendrás la siguiente salida:

? apache2.service - The Apache HTTP Server
     Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2022-04-29 07:59:59 UTC; 4s ago
       Docs: https://httpd.apache.org/docs/2.4/
    Process: 16393 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS)
   Main PID: 16398 (apache2)
      Tasks: 6 (limit: 4630)
     Memory: 13.8M
        CPU: 129ms
     CGroup: /system.slice/apache2.service
             ??16398 /usr/sbin/apache2 -k start
             ??16399 /usr/sbin/apache2 -k start
             ??16400 /usr/sbin/apache2 -k start
             ??16401 /usr/sbin/apache2 -k start
             ??16402 /usr/sbin/apache2 -k start
             ??16403 /usr/sbin/apache2 -k start

Apr 29 07:59:59 ubuntu systemd[1]: Starting The Apache HTTP Server...

Una vez que hayas terminado, puedes pasar al siguiente paso.

Accede a la instalación web de Joomla

Ahora, abre tu navegador web y accede a la instalación web de Joomla utilizando la URL http://joomla.example.com. Serás redirigido a la siguiente página:

Elige la lengua

Selecciona tu idioma, define el nombre de tu sitio y haz clic en Configurar datos de acceso. Deberías ver la siguiente página:

Iniciar sesión en Joomla

Proporciona tu nombre real, tu nombre de usuario, tu contraseña, tu dirección de correo electrónico y haz clic en Configurar la conexión a la base de datos. Deberías ver la siguiente página:

Configuración de la base de datos

Proporciona el nombre de tu base de datos, el nombre de usuario de la base de datos, el host, la contraseña, y haz clic en el botón Instalar Joomla. Una vez instalado Joomla, obtendrás la siguiente página:

La instalación de Joomla ha finalizado con éxito

Haz clic en el botón Abrir administrador. Deberías ver la página de inicio de sesión de Joomla:

Iniciar sesión como administrador

Proporciona tu nombre de usuario y contraseña de administrador y haz clic en el botón Iniciar sesión. Deberías ver el panel de control de Joomla en la siguiente página:

Panel de control de Joomla

Asegura Joomla con Let’s Encrypt SSL

Siempre es una buena idea asegurar tu sitio web con Let’s Encrypt SSL. Necesitarás instalar el cliente Certbot para instalar y gestionar el SSL. Puedes instalarlo con el siguiente comando:

apt-get install python3-certbot-apache -y

Una vez instalado el Certbot, ejecuta el siguiente comando para asegurar tu sitio web con Let’s Encrypt SSL:

certbot --apache -d joomla.example.com

Se te pedirá que proporciones tu correo electrónico y aceptes las condiciones del servicio, como se muestra a continuación:

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator standalone, Installer None
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel): [email protected]

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v02.api.letsencrypt.org/directory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(A)gree/(C)ancel: A

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y
Plugins selected: Authenticator apache, Installer apache
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for joomla.example.com
Enabled Apache rewrite module
Waiting for verification...
Cleaning up challenges
Created an SSL vhost at /etc/apache2/sites-available/joomla-le-ssl.conf
Enabled Apache socache_shmcb module
Enabled Apache ssl module
Deploying Certificate to VirtualHost /etc/apache2/sites-available/joomla-le-ssl.conf
Enabling available site: /etc/apache2/sites-available/joomla-le-ssl.conf

A continuación, selecciona si quieres redirigir el tráfico HTTP a HTTPS como se muestra a continuación:

Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2

Escribe 2 y pulsa Intro para instalar el SSL de Let’s Encrypt para tu sitio web:

Enabled Apache rewrite module
Redirecting vhost in /etc/apache2/sites-enabled/joomla.conf to ssl vhost in /etc/apache2/sites-available/joomla-le-ssl.conf

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://joomla.example.com

You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=joomla.example.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/joomla.example.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/joomla.example.com/privkey.pem
   Your cert will expire on 2023-01-23. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot again
   with the "certonly" option. To non-interactively renew *all* of
   your certificates, run "certbot renew"
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

Ahora, puedes acceder a tu sitio web de forma segura utilizando la URL https://joomla.example.com.

Conclusión

Enhorabuena! has instalado con éxito Joomla con Apache y Let’s Encrypt SSL en Ubuntu 22.04. Ahora puedes crear y alojar fácilmente un sitio web utilizando la plataforma Joomla. No dudes en preguntarme si tienes alguna duda.

También te podría gustar...