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.