Recherche de site Web

Comment installer Drupal CMS avec Apache sur Debian 12


Drupal est un système de gestion de contenu Web gratuit et open source écrit en PHP et distribué sous licence publique générale GNU. Drupal fournit un outil de gestion de contenu robuste avec des API sophistiquées pour la publication multicanal.

Drupal est l'un des CMS les plus utilisés sur Internet, utilisé par au moins 14 % des 10 000 principaux sites Web sur Internet, et il est utilisé par les sites des entreprises mondiales, des gouvernements, de l'éducation et des institutions. Drupal fournit un système hautement évolutif, intégré aux applications numériques, et peut être utilisé pour créer un multisite pour différentes organisations avec un support multilingue.

Dans ce guide, je vais vous montrer comment installer Drupal sur un serveur Debian 12. Nous installerons Drupal sur la pile LAMP (Apache2, MariaDB et PHP) et sécuriserons Drupal avec les certificats SSL/TLS de Letsencrypt.

Conditions préalables

Pour commencer, vérifiez que vous disposez des éléments suivants :

  • Un serveur Debian 12.
  • Un utilisateur non root avec des privilèges d'administrateur.
  • Un nom de domaine pointait vers l'adresse IP de votre serveur.

Installation des dépendances

Drupal est un système de gestion de contenu open source écrit en PHP avec MySQL/MariaDB comme base de données. Pour installer Drupal, vous devez installer les packages PHP et MySQL/MariaDB sur votre système.

Dans l'étape suivante, vous installerez les dépendances de packages pour Drupal, notamment la pile LAMP (Apache2, MariaDB et PHP), le gestionnaire de dépendances PHP Composer et quelques extensions PHP supplémentaires.

Tout d’abord, exécutez la commande apt suivante pour mettre à jour et actualiser l’index de votre paquet Debian.

sudo apt update

Une fois mis à jour, installez les dépendances du package en exécutant la commande ci-dessous. Avec la commande suivante, vous installerez le package LAMP Stack (Apache2, MariaDB et PHP), le gestionnaire de dépendances PHP Composer et les extensions PHP supplémentaires requises par Drupal.

sudo apt install apache2 mariadb-server composer php php-apcu php-dev libapache2-mod-php libcurl4-openssl-dev php-cli php-mysql php-zip php-gd php-fpm php-json php-common php-intl php-mbstring php-curl php-xml php-pear php-tidy php-soap php-bcmath php-xmlrpc

Tapez y pour procéder à l’installation.

Une fois les dépendances installées, vérifiez chaque dépendance pour vous assurer que l'installation a réussi.

Vérifiez le service Apache2 à l'aide de la commande suivante. Cela garantira que le service Apache2 est en cours d'exécution et activé.

sudo systemctl is-enabled apache2
sudo systemctl status apache2

La sortie affichée révélera que le service Apache2 est en cours d'exécution et activé.

Vérifiez maintenant le service mariadb en exécutant la commande suivante.

sudo systemctl is-enabled mariadb
sudo systemctl status mariadb

Le résultat devrait ressembler à ceci :

Ensuite, vérifiez l'emplacement du fichier binaire Composer et la version installée à l'aide de la commande ci-dessous.

which composer
sudo -u www-data composer -v

Le résultat confirme que Composer 2.5 est installé sur /usr/bin/composer.

Enfin, vérifiez la version PHP et les modules compatibles PHP à l'aide de la commande ci-dessous.

php -v
php -m

PHP 8.2 doit être installé sur votre machine Debian et les extensions PHP par défaut doivent être activées.

Configuration du serveur MariaDB

Une fois toutes les dépendances installées, l'étape suivante consiste à sécuriser l'installation de votre serveur MariaDB et à créer une nouvelle base de données et un nouvel utilisateur qui seront utilisés par Drupal. Vous sécuriserez MariaDB via l'utilitaire mariadb-secure-installation, puis vous créerez une nouvelle base de données et un nouvel utilisateur via la ligne de commande du client mariadb.

Exécutez la commande mariadb-secure-installation ci-dessous pour sécuriser votre serveur MariaDB.

sudo mariadb-secure-installation

Au cours du processus, il vous sera demandé quelles sont les configurations suivantes :

  • L'installation par défaut de MariaDB est livrée sans mot de passe, appuyez sur ENTRÉE lorsque vous êtes invité à saisir le mot de passe.
  • Saisissez maintenant Y pour configurer le mot de passe root MariaDB. Ensuite, tapez le nouveau mot de passe pour MariaDB et répétez le mot de passe.
  • Saisissez Y pour supprimer l'utilisateur anonyme de votre installation MariaDB.
  • Saisissez à nouveau Y lorsque vous êtes invité à désactiver la connexion à distance pour l'utilisateur root MariaDB.
  • Saisissez Y pour supprimer le test de base de données par défaut de votre MariaDB.
  • Enfin, saisissez Y pour recharger les privilèges de la table et appliquer les nouvelles modifications.

Ensuite, connectez-vous au serveur MariaDB en exécutant la commande mariadb ci-dessous. Saisissez votre mot de passe root mariaDB lorsque vous y êtes invité.

sudo mariadb -u root -p

Une fois connecté, exécutez les requêtes suivantes pour créer une nouvelle base de données Drupaldb et un utilisateur Drupal sur votre serveur MariaDB. Assurez-vous de changer le mot de passe avec votre mot de passe.

CREATE DATABASE drupaldb;
CREATE USER drupal@localhost IDENTIFIED BY 'password';
GRANT ALL ON drupaldb.* TO drupal@localhost WITH GRANT OPTION;
FLUSH PRIVILEGES;

Enfin, exécutez la requête suivante pour vérifier et vous assurer que l'utilisateur Drupal peut accéder à la base de données Drupaldb.

SHOW GRANTS FOR drupal@localhost;

Le résultat affiché ci-dessous confirme que l'utilisateur Drupal peut accéder à la base de données Drupaldb pour l'installation de Drupal.

Configuration de PHP

Après avoir configuré le serveur MariaDB, vous configurerez PHP pour l'installation de Drupal en :

  • Installation de l'extension Uploadprogress via PECL (Bibliothèque communautaire d'extension PHP).
  • Modification du fichier php.ini.

Commençons.

Installation de l'extension Uploadprogress via PECL

L'extension uploadprogress est utilisée pour afficher et suivre la progression du téléchargement des fichiers, qui inclut la vitesse de téléchargement et le temps restant estimé. L'extension uploadprogress est disponible sur PECL, qui doit être installée manuellement via la ligne de commande pecl.

Exécutez la commande pecl suivante pour installer uploadprogress sur votre système Debian.

sudo pecl install uploadprogress

L'installation de uploadprogress devrait commencer.

Une fois l'installation terminée, exécutez la commande ci-dessous pour télécharger l'extension vers votre installation PHP. Cela créera une nouvelle configuration d'extension PHP /etc/php/8.2/mods-available/uploadprogress.ini.

cat <<EOF | sudo tee /etc/php/8.2/mods-available/uploadprogress.ini
; configuration for php uploadprogress module
; priority 15
extension=uploadprogress.so
EOF

Enfin, exécutez la commande suivante pour activer l'extension uploadprogress sur votre installation PHP.

sudo ln -s /etc/php/8.2/mods-available/uploadprogress.ini /etc/php/8.2/apache2/conf.d/15-uploadprogress.ini

Modification du fichier php.ini

Ouvrez la configuration php.ini par défaut /etc/php/8.2/apache2/php.ini à l'aide de la commande nano editor suivante.

sudo nano /etc/php/8.2/apache2/php.ini

Modifiez la configuration PHP par défaut avec ce qui suit. Assurez-vous d'ajuster les options memory_limit et date.timezone avec votre environnement de serveur.

memory_limit = 512M
upload_max_filesize = 60M
max_execution_time = 300
date.timezone = Europe/Amsterdam

Enregistrez et quittez le fichier lorsque vous avez terminé.

Ensuite, exécutez la commande systemctl ci-dessous pour redémarrer le service apache2 et appliquer les modifications que vous avez apportées.

sudo systemctl restart apache2

Ensuite, exécutez la commande suivante pour créer un nouveau fichier PHPINFO /var/www/html/info.php et vérifiez votre configuration PHP.

cat <<EOF | sudo tee /var/www/html/info.php
<?php
phpinfo();
?>
EOF

Lancez votre navigateur Web et visitez l'adresse IP de votre serveur, telle que http://192.168.10.15/info.php. Si votre configuration PHP réussit, vous devriez voir la page PHPINFO comme celle-ci :

Téléchargement du code source Drupal

Après avoir configuré le serveur MariaDB et installé PHP, vous téléchargerez le code source Drupal et installerez ses dépendances PHP via Composer. Dans ce cas, vous téléchargerez la dernière version de Drupal.

Déplacez votre répertoire de travail /var/www et téléchargez Drupal via la commande wget ci-dessous. Le code source Drupal sera disponible dans le fichier drupal.tar.gz.

cd /var/www/
wget https://www.drupal.org/download-latest/tar.gz -O drupal.tar.gz

Extrayez le fichierdrupal.tar.gz via la commande tar ci-dessous. Ensuite, renommez le répertoire extrait en Drupal, ce qui signifie que le répertoire racine Web de Drupal sera /var/www/drupal.

tar -xvf drupal.tar.gz
mv drupal-* /var/www/drupal

Enfin, exécutez la commande suivante pour modifier l'autorisation et la propriété du répertoire racine Web de Drupal /var/www/drupal. Ce répertoire appartiendra à l'utilisateur www-data avec l'autorisation 755.

sudo chown -R www-data:www-data /var/www/drupal/
sudo chmod -R 755 /var/www/drupal/

Configuration de l'hôte virtuel Apache2

Maintenant que vous avez téléchargé Drupal et configuré le répertoire racine Web sur /var/www/drupal, l'étape suivante consiste à créer une nouvelle configuration d'hôte virtuel Apache2 qui sera utilisée pour exécuter Drupal. Avant d'aller plus loin, assurez-vous que le nom de domaine pointe vers l'adresse IP de votre serveur.

Tout d’abord, exécutez la commande suivante pour activer certains modules Apache2 requis pour Drupal.

sudo a2enmod rewrite ssl headers deflate

Ensuite, créez une nouvelle configuration d'hôte virtuel /etc/apache2/sites-available/drupal.conf à l'aide de la commande suivante de l'éditeur nano.

sudo nano /etc/apache2/sites-available/drupal.conf

Insérez la configuration suivante et assurez-vous de modifier l'option ServerName avec votre nom de domaine.

<VirtualHost *:80>
    ServerName hwdomain.io
    ServerAdmin [email 
    DocumentRoot /var/www/drupal
    # Add security
    php_flag register_globals off
    ErrorLog ${APACHE_LOG_DIR}/hwdomain.io.error.log
    CustomLog ${APACHE_LOG_DIR}/hwdomain.io.access.log combined
    <FilesMatch "\.(cgi|shtml|phtml|php)$">
      SSLOptions +StdEnvVars
    </FilesMatch>
    <Directory /var/www/drupal>
        Options FollowSymlinks
        #Allow .htaccess
        AllowOverride All
        Require all granted
        <IfModule security2_module>
            SecRuleEngine Off
            # or disable only problematic rules
        </IfModule>
    </Directory>
    <Directory /var/www/drupal/>
        RewriteEngine on
        RewriteBase /
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
    </Directory>
</VirtualHost>

Une fois terminé, enregistrez et fermez le fichier.

Ensuite, exécutez la commande suivante pour activer le fichier hôte virtuel drupal.conf et vérifiez votre syntaxe Apache2.

sudo a2ensite drupal.conf
sudo apachectl configtest

Si vous disposez de la syntaxe Apache2 appropriée, la sortie Syntaxe OK sera affichée.

Redémarrez maintenant le service Apache2 à l'aide de la commande ci-dessous pour appliquer les modifications que vous avez apportées.

sudo systemctl restart apache2

Générer des certificats SSL/TLS Letsencrypt pour Drupal

Dans l'étape suivante, vous sécuriserez votre installation Drupal avec les certificats SSL/TLS de Letsencrypt. Pour y parvenir, vous devez installer Certbot et le plugin Certbot Apache sur votre système Debian, puis générer des certificats SSL/TLS pour votre nom de domaine Drupal.

Installez le plugin Certbot et Certbot APache à l'aide de la commande apt install suivante. Tapez y pour procéder à l’installation.

sudo apt install certbot python3-certbot-apache

Ensuite, exécutez la commande certbot ci-dessous pour générer des certificats SSL/TLS pour votre site Drupal. Assurez-vous de modifier l'adresse e-mail et le nom de domaine dans la commande suivante.

sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email [email  -d hwdomain.io

Une fois le processus terminé, vos certificats SSL/TLS seront disponibles dans le répertoire /etc/letsencrypt/live/domain.com. Votre installation Drupal est automatiquement configurée avec HTTPS, qui est configuré via le plugin Certbot Apache.

Installer Drupal via Web Installer

Lancez votre navigateur Web et visitez le nom de domaine de votre site Drupal, tel que http://hwdomain.io/. Si tout se passe bien, vous devriez être redirigé vers les connexions HTTPS et la page d'installation de Drupal s'affichera.

Sélectionnez la langue par défaut qui sera utilisée pour l'installation de Drupal et cliquez sur Enregistrer et continuer.

Sélectionnez le profil d'installation Drupal que vous souhaitez utiliser. Le profil Standard est recommandé pour le nouveau propriétaire de site, tandis que Minimal nécessite une compréhension approfondie de Drupal. Ou vous pouvez également choisir un profil avec Démo.

L'exemple suivant utilisera le profil Standard, puis cliquez sur Enregistrer et continuer.

Le programme d'installation Web Drupal vérifiera désormais votre environnement système pour l'installation de Drupal. Vous devriez être redirigé vers la configuration de la base de données si votre serveur répond aux exigences Drupal.

Saisissez les détails du nom de votre base de données MariaDB, de l'utilisateur et du mot de passe que Drupal utilisera. Ensuite, cliquez à nouveau sur Enregistrer et continuer.

Après avoir configuré la base de données, l'installation de Drupal devrait commencer.

Une fois le processus d'installation terminé, configurez votre site Drupal. Saisissez les détails du nom du site, de l'adresse e-mail du site, du nom d'utilisateur de l'administrateur, du mot de passe, du pays par défaut et du fuseau horaire. Cliquez ensuite sur Enregistrer et continuer.

Si votre installation de Drupal réussit, le résultat « Félicitations, vous avez installé Drupal ! » devrait s'afficher sur votre écran.

À partir de là, vous pouvez gérer votre contenu Drupal, les structures de votre site et l'administration Drupal, et vérifier l'état de votre installation Drupal. Cliquez sur Gérer et sélectionnez le menu Configuration pour configurer votre installation Drupal.

Configuration supplémentaire pour Drupal

Pour compléter ce guide, vous ajouterez quelques configurations supplémentaires à votre Drupal.

Tout d'abord, revenez à votre serveur de terminal et exécutez la commande suivante pour modifier l'autorisation du fichier settings.php et ouvrez-le avec l'éditeur nano.

sudo chmod 644 /var/www/drupal/sites/default/settings.php
sudo nano /var/www/drupal/sites/default/settings.php

Recherchez la section "trusted_host_patterns" et saisissez le nom de domaine de votre installation Drupal comme suit.

$settings['trusted_host_patterns'] = [
  '^hwdomain\.io$',
];

Enregistrez et fermez le fichier lorsque vous avez terminé.

Exécutez maintenant la commande suivante pour rétablir l'autorisation du fichier settings.php sur 444.

sudo chmod 444 /var/www/drupal/sites/default/settings.php

Ensuite, sélectionnez le menu Rapports et cliquez sur Rapports d'état.

Vous devriez voir des informations détaillées sur votre installation Drupal. Dans la capture d'écran suivante, Drupal 10 est installé avec le serveur Web Apache2 2.4, le serveur MariaDB 10.11 et PHP 8.2.

Cliquez maintenant sur le lien Détails du rapport d'état et le rapport détaillé de votre environnement de serveur Drupal s'affichera.

Conclusion

En suivant ce guide étape par étape, vous avez installé le système de gestion de contenu Drupal sur le serveur Debian 12 avec la pile LAMP et SSL/TLS Letsencrypt. À partir de là, vous pouvez désormais utiliser Drupal comme site Web et installer de nouveaux thèmes et extensions pour votre CMS Drupal.

Articles connexes: