Comment installer le CMS Concrete5 avec Apache et le SSL gratuit Let’s Encrypt sur Ubuntu 20.04
Concrete5 est un système de gestion de contenu open-source utilisé pour publier du contenu sur Internet. Il est écrit en PHP et utilise MariaDB comme base de données. Il propose un constructeur facile à utiliser qui t’aide à créer des pages et du contenu via le navigateur Web. Il est flexible, sécurisé, adapté aux mobiles et basé sur l’architecture Modèle-Vue-Contrôleur. Il offre un riche ensemble de fonctionnalités, dont l’éditeur de contenu WYSIWYG, le gestionnaire de médias, le contenu par glisser-déposer, l’édition dans le contexte, et bien d’autres encore.
Dans ce billet, nous allons te montrer comment installer Concrete5 CMS avec Apache et Let’s Encrypt SSL sur le serveur Ubuntu 20.04.
Exigences
- Un serveur fonctionnant sous Ubuntu 20.04.
- Un nom de domaine valide pointé vers l’IP du serveur.
- Un mot de passe root est configuré sur ton serveur.
Pour commencer
Tout d’abord, tu dois mettre à jour l’index des paquets APT à la dernière version. Tu peux le mettre à jour avec la commande suivante :
apt-get update -y
Une fois l’index APT mis à jour, tu peux passer à l’étape suivante.
Installe Apache, MariaDB et PHP
Ensuite, tu devras installer le serveur Web Apache, le serveur de base de données MariaDB, PHP et d’autres extensions PHP sur ton serveur. Tu peux les installer tous à l’aide de la commande suivante :
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
Une fois que tous les paquets sont installés, modifie le fichier php.ini et définis les valeurs souhaitées :
nano /etc/php/7.4/apache2/php.ini
Change les lignes suivantes :
file_uploads = On allow_url_fopen = On memory_limit = 256M upload_max_filesize = 64M date.timezone = Asia/Kolkata
Sauvegarde et ferme le fichier lorsque tu as terminé puis redémarre le service Apache pour appliquer les modifications :
systemctl restart apache2
Une fois que tu as terminé, tu peux passer à l’étape suivante.
Crée une base de données Concrete5
Ensuite, tu devras créer une base de données et un utilisateur pour Concrete5. Tout d’abord, connecte-toi à MariaDB avec la commande suivante :
mysql
Une fois connecté, crée une base de données et un utilisateur avec la commande suivante :
MariaDB [(none)]> CREATE DATABASE concrete5;
MariaDB [(none)]> CREATE USER 'concrete5user'@'localhost' IDENTIFIED BY 'password';
Ensuite, accorde tous les privilèges à la base de données Concrete5 avec la commande suivante :
MariaDB [(none)]> GRANT ALL ON concrete5.* TO 'concrete5user'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;
Ensuite, supprime les privilèges et quitte la console MariaDB avec la commande suivante: :
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;
Une fois que tu as terminé, tu peux passer à l’étape suivante.
Télécharge Concrete5 CMS
Tout d’abord, va sur le site Web de Concrete5 CMS, copie l’URL de la dernière version de Concrete5, et télécharge-la avec la commande suivante :
wget --trust-server-names https://www.concrete5.org/download_file/-/view/115589/ -O concrete5.zip
Une fois le téléchargement terminé, extrais le fichier téléchargé avec la commande suivante :
unzip concrete5.zip
Ensuite, déplace le répertoire extrait vers le répertoire racine du site Web d’Apache à l’aide de la commande suivante :
mv concrete5-* /var/www/html/concrete5
Ensuite, définis la permission et la propriété appropriées au répertoire concrete5 avec la commande suivante :
chown -R www-data:www-data /var/www/html/concrete5/
chmod -R 755 /var/www/html/concrete5/
Une fois que tu as terminé, tu peux passer à l’étape suivante.
Configurer Apache pour le CMS Concrete5
Ensuite, tu devras créer un fichier de configuration d’hôte virtuel Apache pour Concrete5 CMS. Tu peux le créer avec la commande suivante :
nano /etc/apache2/sites-available/concrete5.conf
Ajoute les lignes suivantes :
<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>
Sauvegarde et ferme le fichier puis active l’hôte virtuel et le module de réécriture d’Apache avec la commande suivante :
a2ensite concrete5.conf
a2enmod rewrite
Ensuite, redémarre le service Apache pour appliquer les modifications :
systemctl restart apache2
Tu peux aussi vérifier l’état du service Apache à l’aide de la commande suivante :
systemctl status apache2
Tu devrais obtenir la sortie suivante :
? 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...
À ce stade, le serveur Web Apache est configuré pour héberger Concrete5 CMS. Tu peux maintenant passer à l’étape suivante.
Accède à l’interface Web de Concrete5 CMS
Maintenant, ouvre ton navigateur Web et accède à l’interface Web de Concrete5 CMS en utilisant l’URL http://concrete5.example.com. Tu seras redirigé vers la page suivante :
Sélectionne ta langue et clique sur le bouton Flèche. Tu devrais voir la page suivante :
Assure-toi que toutes les bibliothèques requises sont installées, puis clique sur le bouton Continuer l’installation, Tu devrais voir la page suivante :
Ici, indique le nom d’utilisateur Admin, le mot de passe, le nom d’utilisateur de la base de données, le mot de passe et le nom de la base de données, puis clique sur le bouton Installer Concrete5 pour lancer l’installation. Une fois l’installation terminée, tu devrais voir la page suivante :
Maintenant, clique sur le bouton Modifier ton site, tu devrais voir le tableau de bord de Concrete5 sur la page suivante :
Sécurise Concrete5 avec Let’s Encrypt SSL
Ensuite, il est recommandé de sécuriser ton site Web avec Let’s Encrypt SSL. Tout d’abord, installe le client Certbot à l’aide de la commande suivante :
apt-get install python3-certbot-apache -y
Une fois installé, exécute la commande suivante pour sécuriser ton site Web avec Let’s Encrypt SSL :
certbot --apache -d concrete5.example.com
Il te sera demandé de fournir ton email et d’accepter les conditions de service comme indiqué ci-dessous :
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
Ensuite, choisis de rediriger ou non le trafic HTTP vers HTTPS comme indiqué ci-dessous :
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
Tape 2 et appuie sur Entrée pour installer le SSL Let’s Encrypt pour ton site 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
Maintenant, tu peux accéder à Concrete 5 en toute sécurité en utilisant l’URL https://concrete5.example.com.
Conclusion
Dans le guide ci-dessus, tu as appris à installer le CMS Concrete5 avec Apache et Let’s Encrypt SSL sur Ubuntu 20.04. Tu peux maintenant publier ton contenu sur Internet facilement en utilisant le CMS Concrete5. N’hésite pas à me demander si tu as des questions.