Cómo instalar Concrete5 CMS con Let’s Encrypt SSL gratuito en Debian 11

Concrete5 es un sistema de gestión de contenidos gratuito y de código abierto para publicar contenidos en Internet. Fue diseñado para usuarios principiantes con conocimientos informáticos mínimos y les permite editar el sitio web directamente desde el navegador web. Es sencillo, ligero, fácil de usar y está escrito en PHP. Viene con un montón de características útiles, incluyendo, una interfaz web intuitiva, SEO amigable, medios de comunicación social, optimizado para móviles, extensible, informes integrados, y mucho más.

Este post te mostrará cómo instalar Concrete5 CMS con Apache y Let’s Encrypt SSL en Debian 11.

Requisitos previos

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

Instalar Apache, MariaDB y PHP

En primer lugar, tendrás que instalar el servidor web Apache, el servidor de bases de datos MariaDB, PHP y otras extensiones necesarias en tu servidor. Puedes instalarlos todos ejecutando el siguiente comando:

apt-get install apache2 mariadb-server php libapache2-mod-php libapache2-mod-php php-common php-mbstring php-xmlrpc php-soap php-gd php-xml php-intl php-mysql php-cli php-ldap php-zip php-curl -y

Una vez instalados todos los paquetes, edita el archivo php.ini y modifica algunos ajustes de PHP:

nano /etc/php/7.3/apache2/php.ini

Cambia las siguientes líneas:

file_uploads = On
allow_url_fopen = On
memory_limit = 256M
upload_max_filesize = 64M
date.timezone = UTC

Guarda y cierra el archivo cuando hayas terminado y reinicia el servicio Apache para aplicar los cambios:

systemctl restart apache2

Crear una base de datos para Concrete5

Concrete5 utiliza MariaDB o MySQL como base de datos. Así que necesitarás crear una base de datos y un usuario para Concrete5.

Primero, inicia sesión en MariaDB con el siguiente comando:

mysql

Una vez que hayas iniciado sesión, crea una base de datos y un usuario con el siguiente comando:

MariaDB [(none)]> CREATE DATABASE concrete5;
MariaDB [(none)]> CREATE USER 'concrete5'@'localhost' IDENTIFIED BY 'password';

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

MariaDB [(none)]> GRANT ALL ON concrete5.* TO 'concrete5'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;

A continuación, vacía los privilegios y sal de la consola MariaDB con el siguiente comando:

MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;

Instalar Concrete5 CMS

A continuación, ve a la página de descarga de Concrete5 CMS, copia la URL de la última versión de Concrete5 y ejecuta el siguiente comando para descargarla en tu sistema:

wget https://www.concretecms.org/application/files/3916/3649/1545/concrete-cms-9.0.1.zip

Una vez finalizada la descarga, descomprime el archivo descargado utilizando el siguiente comando:

unzip concrete-cms-9.0.1.zip

A continuación, mueve el directorio extraído al directorio raíz web de Apache:

mv concrete-cms-9.0.1 /var/www/html/concrete5

A continuación, cambia la propiedad y el permiso del directorio concrete5 utilizando el siguiente comando:

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

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

Crear un archivo de configuración del host virtual de Apache

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

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

Añade las siguientes líneas:

<VirtualHost *:80>
     ServerAdmin [email protected]
     DocumentRoot /var/www/html/concrete5
     ServerName concrete5.yourdomain.com

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

     ErrorLog ${APACHE_LOG_DIR}/error.log
     CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

Guarda y cierra el archivo y, a continuación, habilita el host virtual de Apache y el módulo de reescritura mediante el siguiente comando:

a2ensite concrete5.conf
a2enmod rewrite

Por último, reinicia el servicio Apache utilizando el siguiente comando:

systemctl restart apache2

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

systemctl status apache2

Deberías ver 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 2021-12-10 14:29:49 UTC; 5s ago
     Docs: https://httpd.apache.org/docs/2.4/
  Process: 16050 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS)
 Main PID: 16054 (apache2)
    Tasks: 6 (limit: 4701)
   Memory: 15.4M
   CGroup: /system.slice/apache2.service
           ??16054 /usr/sbin/apache2 -k start
           ??16055 /usr/sbin/apache2 -k start
           ??16056 /usr/sbin/apache2 -k start
           ??16057 /usr/sbin/apache2 -k start
           ??16058 /usr/sbin/apache2 -k start
           ??16059 /usr/sbin/apache2 -k start

Dec 10 14:29:49 debian11 systemd[1]: Starting The Apache HTTP Server...

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

Accede a Concrete5 CMS

Ahora, abre tu navegador web y accede al CMS Concrete5 utilizando la URL http://concrete5.yourdomain.com. Serás redirigido a la siguiente página:

Selecciona tu idioma y pulsa el botón >. Deberías ver la siguiente página:

Asegúrate de que todas las extensiones PHP están instaladas y haz clic en el botón Continuar con la instalación. Deberías ver la siguiente página:

Proporciona tu nombre de usuario admin, contraseña, nombre de la base de datos, nombre de usuario de la base de datos, contraseña y haz clic en el botón Instalar Concrete5. Una vez finalizada la instalación, deberías ver la siguiente página:

Haz clic en Editar tu Sitio. Deberías ver el panel de Concrete5 en la siguiente página:

Asegurar Open Concrete5 con Let’s Encrypt SSL

Si quieres asegurar tu sitio web abierto con Let’s Encrypt SSL, necesitarás instalar el paquete cliente Certbot para instalar y gestionar Let’s Encrypt SSL para tu sitio web abierto.

Puedes instalarlo ejecutando el siguiente comando:

apt-get install python3-certbot-apache -y

Una vez instalado el paquete Certbot, ejecuta el siguiente comando para descargar e instalar Let’s Encrypt SSL para tu sitio web.

certbot --apache -d concrete5.yourdomain.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 concrete5.yourdomain.com
Enabled Apache rewrite module
Waiting for verification...
Cleaning up challenges
Created an SSL vhost at /etc/apache2/sites-available/concrete5-le-ssl.conf
Enabled Apache socache_shmcb module
Enabled Apache ssl module
Deploying Certificate to VirtualHost /etc/apache2/sites-available/concrete5-le-ssl.conf
Enabling available site: /etc/apache2/sites-available/concrete5-le-ssl.conf

A continuación, selecciona si deseas o no 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/concrete5.conf to ssl vhost in /etc/apache2/sites-available/concrete5-le-ssl.conf

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://concrete5.yourdomain.com

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

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/concrete5.yourdomain.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/open.yourdomain.com/privkey.pem
   Your cert will expire on 2022-03-11. 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://concrete5.yourdomain.com.

Conclusión

Enhorabuena! has instalado con éxito Concrete5 CMS con Apache y Let’s Encrypt SSL en Debian 11. Ahora puedes crear y editar tu sitio web fácilmente desde el navegador web. No dudes en preguntarme si tienes alguna duda.

Scroll al inicio