Cómo instalar Concrete5 CMS con Apache y Let’s Encrypt SSL gratuito en Ubuntu 20.04
Concrete5 es un sistema de gestión de contenidos de código abierto utilizado para publicar contenidos en Internet. Está escrito en PHP y utiliza MariaDB como base de datos. Proporciona un constructor fácil de usar que te ayuda a crear páginas y contenidos a través del navegador web. Es flexible, seguro, apto para móviles y está basado en la arquitectura Modelo-Vista-Controlador. Ofrece un rico conjunto de funciones, como el editor de contenidos WYSIWYG, el gestor de medios, la función de arrastrar y soltar contenidos, la edición en contexto y muchas más.
En este post, te mostraremos cómo instalar Concrete5 CMS con Apache y Let’s Encrypt SSL en un servidor Ubuntu 20.04.
Requisitos
- Un servidor con Ubuntu 20.04.
- Un nombre de dominio válido que apunte a la IP del servidor.
- Una contraseña de root configurada en tu servidor.
Cómo empezar
En primer lugar, tendrás que actualizar el índice de paquetes de APT a la última versión. Puedes actualizarlo con el siguiente comando:
apt-get update -y
Una vez actualizado el índice de APT, puedes pasar al siguiente paso.
Instalar Apache, MariaDB y PHP
A continuación, tendrás que instalar el servidor web Apache, el servidor de bases de datos MariaDB, PHP y otras extensiones de PHP en tu servidor. Puedes instalarlos todos con 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 establece los valores deseados:
nano /etc/php/7.4/apache2/php.ini
Cambia las siguientes líneas:
file_uploads = On allow_url_fopen = On memory_limit = 256M upload_max_filesize = 64M date.timezone = Asia/Kolkata
Guarda y cierra el archivo cuando hayas terminado y reinicia el servicio Apache para aplicar los cambios:
systemctl restart apache2
Una vez que hayas terminado, puedes pasar al siguiente paso.
Crear una base de datos Concrete5
A continuación, tendrás que crear una base de datos y un usuario para Concrete5. En primer lugar, inicia sesión en MariaDB con el siguiente comando:
mysql
Una vez iniciada la sesión, crea una base de datos y un usuario con el siguiente comando:
MariaDB [(none)]> CREATE DATABASE concrete5;
MariaDB [(none)]> CREATE USER 'concrete5user'@'localhost' IDENTIFIED BY 'password';
A continuación, concede todos los privilegios a la base de datos de Concrete5 con el siguiente comando
MariaDB [(none)]> GRANT ALL ON concrete5.* TO 'concrete5user'@'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;
Una vez que hayas terminado, puedes pasar al siguiente paso.
Descarga Concrete5 CMS
Primero, ve al sitio web de Concrete5 CMS, copia la URL de la última versión de Concrete5 y descárgala con el siguiente comando
wget --trust-server-names https://www.concrete5.org/download_file/-/view/115589/ -O concrete5.zip
Una vez completada la descarga, extrae el archivo descargado con el siguiente comando:
unzip concrete5.zip
A continuación, mueve el directorio extraído al directorio raíz de la web de Apache con el siguiente comando:
mv concrete5-* /var/www/html/concrete5
A continuación, establece el permiso y la propiedad adecuados para el directorio concrete5 con 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.
Configurar Apache para Concrete5 CMS
A continuación, tendrás que crear un archivo de configuración del host virtual de Apache para Concrete5 CMS. Puedes crearlo con 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.example.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 luego habilita el módulo de reescritura y el host virtual de Apache con el siguiente comando:
a2ensite concrete5.conf
a2enmod rewrite
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
Deberías obtener la siguiente salida:
? apache2.service - The Apache HTTP Server Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled) Active: active (running) since Sat 2021-05-15 15:00:03 UTC; 4s ago Docs: https://httpd.apache.org/docs/2.4/ Process: 15566 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS) Main PID: 15585 (apache2) Tasks: 6 (limit: 2353) Memory: 13.5M CGroup: /system.slice/apache2.service ??15585 /usr/sbin/apache2 -k start ??15586 /usr/sbin/apache2 -k start ??15587 /usr/sbin/apache2 -k start ??15588 /usr/sbin/apache2 -k start ??15589 /usr/sbin/apache2 -k start ??15590 /usr/sbin/apache2 -k start May 15 15:00:03 ubuntu2004 systemd[1]: Starting The Apache HTTP Server...
En este punto, el servidor web Apache está configurado para alojar Concrete5 CMS. Ahora puedes pasar al siguiente paso.
Acceder a la interfaz web de Concrete5 CMS
Ahora, abre tu navegador web y accede a la interfaz web de Concrete5 CMS utilizando la URL http://concrete5.example.com. Serás redirigido a la siguiente página:
Selecciona tu idioma y haz clic en el botón de la flecha. Deberías ver la siguiente página:
Asegúrate de que todas las librerías necesarias están instaladas, luego haz clic en el botón Continuar con la instalación, Deberías ver la siguiente página:
Aquí, proporciona el nombre de usuario del administrador, la contraseña, el nombre de usuario de la base de datos, la contraseña y el nombre de la base de datos, y luego haz clic en el botón Instalar Concrete5 para iniciar la instalación. Una vez completada la instalación, deberías ver la siguiente página:
Ahora, haz clic en el botón Editar tu sitio, deberías ver el panel de control de Concrete5 en la siguiente página:
Asegura Concrete5 con Let’s Encrypt SSL
A continuación, se recomienda asegurar tu sitio web con Let’s Encrypt SSL. En primer lugar, instala el cliente Certbot con el siguiente comando:
apt-get install python3-certbot-apache -y
Una vez instalado, ejecuta el siguiente comando para asegurar tu sitio web con Let’s Encrypt SSL:
certbot --apache -d concrete5.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 concrete5.example.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 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/concrete5.conf to ssl vhost in /etc/apache2/sites-available/concrete5-le-ssl.conf - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Congratulations! You have successfully enabled https://concrete5.example.com You should test your configuration at: https://www.ssllabs.com/ssltest/analyze.html?d=concrete5.example.com - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/concrete5.example.com/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/concrete5.example.com/privkey.pem Your cert will expire on 2020-10-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 Concrete 5 de forma segura utilizando la URL https://concrete5.example.com.
Conclusión
En la guía anterior, has aprendido a instalar Concrete5 CMS con Apache y Let’s Encrypt SSL en Ubuntu 20.04. Ahora puedes publicar tus contenidos en Internet fácilmente utilizando el CMS Concrete5. No dudes en preguntarme si tienes alguna duda.