Installation Drupal · 15 min read · Oct 13, 2025

Comment installer Drupal CMS avec Nginx sur Rocky Linux 8

Drupal est un système de gestion de contenu web gratuit et open-source écrit en PHP et distribué sous la 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 meilleurs sites web sur Internet, et il est utilisé pour des industries d’entreprise mondiales, des gouvernements, des sites éducatifs et des institutions. Drupal fournit un système hautement évolutif, intégré avec des applications numériques, et peut être utilisé pour créer des multisites pour différentes organisations avec un support multilingue.

Dans ce tutoriel, vous apprendrez à configurer le CMS Drupal (système de gestion de contenu) avec la pile LEMP sur le serveur Rocky Linux. Vous apprendrez également à faire fonctionner Drupal sur Rocky Linux avec le mode d’application SELinux et le Firewalld activé.

Prérequis

Pour commencer ce guide, vous aurez besoin des exigences suivantes :

  • Un serveur Rocky Linux - Cet exemple utilise Rocky Linux 8.x avec le nom d’hôte ‘drupal-server‘.
  • Un utilisateur non-root avec des privilèges d’administrateur sudo/root.
  • Un nom de domaine pointé vers l’adresse IP du serveur Rocky Linux - surtout lorsque vous êtes en environnement de production.

Configuration des dépôts

La pile LEMP (Nginx, MariaDB/MySQL et PHP-FPM) est un groupe de logiciels open-source pour l’hébergement d’applications web. Sur Rocky Linux, la plupart des paquets de la pile LEMP sont disponibles dans des dépôts tiers.

Dans la première étape, vous allez ajouter et activer deux dépôts sur votre système. Vous ajouterez le dépôt EPEL qui fournit des paquets supplémentaires pour les systèmes d’exploitation basés sur RHEL, et le dépôt REMI qui fournit plusieurs versions de paquets PHP.

Exécutez la commande suivante pour ajouter le dépôt EPEL à votre système Rocky Linux. Lorsque vous êtes invité à confirmer, saisissez y et appuyez sur ENTRÉE.

sudo dnf install epel-release

install epel

Maintenant, exécutez la commande dnf ci-dessous pour ajouter le dépôt REMI pour Rocky Linux 8.4.

sudo dnf install dnf-utils http://rpms.remirepo.net/enterprise/remi-release-8.rpm

Saisissez y et appuyez sur ENTRÉE pour continuer et ajouter le dépôt Remi.

install remi

Enfin, exécutez la commande dnf ci-dessous pour vérifier la liste des dépôts disponibles sur votre système. Vous devriez voir deux dépôts supplémentaires EPEL et REMI ajoutés au système Rocky Linux.

sudo dnf repolist

check repositories

Installation des dépendances de paquets

Drupal est un CMS flexible et puissant qui peut être installé avec n’importe quel serveur web tel qu’Apache2/httpd, Nginx ou IIS Microsoft. De plus, Drupal prend en charge plusieurs SGBD, y compris MariaDB/MySQL, PostgreSQL et SQLite. Pour d’autres bases de données telles que Microsoft SQL Server et MongoDB, vous pouvez utiliser les deux via des modules communautaires.

Maintenant, vous allez installer les dépendances de paquets de la pile LEMP pour Drupal. Vous allez installer Nginx via le dépôt EPEL, installer MariaDB à partir de l’appstream, et les paquets PHP 8.1 à partir du dépôt REMI.

Tout d’abord, réinitialisez et activez le module PHP à partir du dépôt REMI via la commande dnf ci-dessous. Dans cet exemple, vous allez activer un module pour PHP 8.1, qui est pris en charge par la dernière version de Drupal.

sudo dnf module reset php  
sudo dnf module enable php:remi-8.1

Lorsque vous êtes invité, saisissez y pour confirmer et activer le dépôt REMI PHP 8.1 et appuyez sur ENTRÉE pour continuer.

enable php 8.1

Ensuite, utilisez la commande dnf ci-dessous pour installer les paquets de base de la pile LEMP.

sudo dnf install nginx mariadb-server php php-fpm php-cli php-devel php-mbstring php-gd php-xml php-curl php-mysqlnd php-pdo php-json php-opcache php-pear php-pecl-apcu php-pecl-crypto

Saisissez y et appuyez sur ENTRÉE lorsque vous êtes invité à confirmer.

install dependencies

De plus, saisissez y lorsque vous êtes invité à confirmer l’ajout de la clé GPG pour certains dépôts.

accept gpg keys

Une fois les paquets de la pile LEMP installés, vous pouvez utiliser la commande systemctl suivante pour démarrer les services Nginx, MariaDB et PHP-FPM. De plus, vous allez activer tous ces services pour qu’ils s’exécutent automatiquement au démarrage.

sudo systemctl start nginx mariadb php-fpm  
sudo systemctl enable nginx mariadb php-fpm

Vous devriez maintenant voir une sortie comme suit - la pile LEMP devrait maintenant fonctionner sur votre système Rocky Linux et tous les services de la pile LEMP sont activés.

start and enable services

Configuration de Firewalld

Firewalld est le pare-feu par défaut sur les systèmes d’exploitation basés sur RHEL, y compris Rocky Linux. Exécuter Drupal ou toute application web avec un pare-feu activé est recommandé, surtout dans un environnement de production.

Maintenant, vous allez ajouter les ports HTTP et HTTPS au firewalld pour permettre aux clients d’accéder à votre installation Drupal.

Exécutez la commande firewall-cmd ci-dessous pour ajouter les services HTTP et HTTPS au firewalld.

sudo firewall-cmd --add-service=http --permanent  
sudo firewall-cmd --add-service=https --permanent

Maintenant, rechargez le firewalld pour appliquer les nouvelles modifications. Ensuite, vérifiez la liste des services activés sur le firewalld.

sudo firewall-cmd --reload  
sudo firewall-cmd --list-services

Vous devriez voir les services HTTP et HTTPS ajoutés au firewalld.

setup firewalld

Configuration du serveur MariaDB

Dans cette étape, vous allez commencer à configurer la base de données MariaDB qui sera utilisée pour Drupal. Vous allez commencer par sécuriser le déploiement de MariaDB, puis créer une nouvelle base de données et un utilisateur pour l’installation de Drupal.

Avant de commencer, exécutez la commande suivante pour vérifier le service MariaDB et vous assurer que le service fonctionne.

sudo systemctl status mariadb

Voici la sortie lorsque le service MariaDB fonctionne.

check mariadb

Ensuite, exécutez la commande suivante pour sécuriser le déploiement du serveur MariaDB. Cette ligne de commande ‘mysql_secure_installation‘ est fournie par les paquets MariaDB qui vous aident à sécuriser l’installation.

sudo mysql_secure_installation

Vous devriez maintenant être interrogé sur certaines questions liées aux configurations du serveur MariaDB :

  • L’installation par défaut de MariaDB se fait sans mot de passe, appuyez sur ENTRÉE lorsque vous êtes invité pour le mot de passe.
  • Maintenant, saisissez Y pour configurer le mot de passe root de 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 Y à nouveau lorsque vous êtes invité à désactiver la connexion à distance pour l’utilisateur root de MariaDB.
  • Saisissez Y pour supprimer la base de données par défaut test de votre MariaDB.
  • Enfin, saisissez Y pour recharger les privilèges des tables et appliquer les nouvelles modifications.

Après avoir sécurisé le déploiement de MariaDB, vous allez ensuite configurer une nouvelle base de données et un utilisateur pour Drupal.

Connectez-vous à l’interface de commande MySQL/MariaDB via l’utilisateur root avec la commande mysql ci-dessous.

sudo mysql -u root -p

Exécutez les requêtes suivantes pour créer une nouvelle base de données et un utilisateur pour Drupal. Dans cet exemple, vous allez créer la base de données drupaldb avec l’utilisateur drupal@localhost. Assurez-vous également de changer le mot de passe de la base de données par défaut.

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

create database

Ensuite, exécutez les requêtes suivantes pour vérifier les privilèges de l’utilisateur MariaDB drupal@localhost. Vous verrez que l’utilisateur MariaDB drupal@localhost a accès et privilèges à la base de données drupaldb.

SHOW GRANTS FOR drupal@localhost;

Maintenant, exécutez la requête ‘exit‘ ou ‘quit‘ pour vous déconnecter de l’interface de commande MariaDB.

check database settings

Installation de l’extension PECL : uploadprogress

L’uploadprogress est une extension qui sera utilisée par Drupal pour afficher une barre de progression. L’uploadprogress peut être installé via le dépôt PECL (PHP Extension Community Library).

Vous allez maintenant installer l’extension uploadprogress à partir du dépôt PECL et l’activer sur votre installation PHP.

Pour commencer, exécutez la commande suivante pour vous assurer que la commande ‘pecl‘ est disponible sur votre système. Si ‘pecl‘ est disponible, vous devriez voir le chemin complet du fichier binaire ‘pecl‘.

which pecl

Maintenant, exécutez la commande ‘pecl‘ ci-dessous pour installer l’extension uploadprogress.

sudo pecl install uploadprogress

Lorsque l’installation commence, vous devriez voir une sortie comme suit :

install uploadprogress

Ensuite, exécutez la commande suivante pour créer un nouveau fichier de configuration ‘ /etc/php.d/uploadprogress.ini‘, et activer l’extension uploadprogress.

cat <

Enfin, redémarrez le service PHP-FPM pour appliquer les nouvelles modifications. Le PHP-FPM fonctionne maintenant avec l’extension supplémentaire uploadprogress activée.

sudo systemctl restart php-fpm

setup uploadprogress

Configuration de PHP-FPM

Maintenant, vous allez configurer la configuration de base de PHP-FPM via le fichier ‘ /etc/php.ini‘ et configurer un pool PHP-FPM spécifique pour Drupal.

Modifiez le fichier ‘ /etc/php.ini‘ en utilisant l’éditeur nano suivant.

sudo nano /etc/php.ini

Changez la configuration par défaut comme ci-dessous. Assurez-vous également de changer l’option date.timezone avec votre environnement.

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

Enregistrez le fichier et quittez l’éditeur lorsque vous avez terminé.

Ensuite, copiez la configuration de pool PHP-FPM par défaut ‘ /etc/php-fpm.d/www.conf‘ vers ‘ /etc/php-fpm.d/drupal.conf‘. Ensuite, modifiez la nouvelle configuration de pool ‘ /etc/php-fpm.d/drupal.conf‘ en utilisant l’éditeur nano.

sudo cp /etc/php-fpm.d/www.conf /etc/php-fpm.d/drupal.conf  
sudo nano /etc/php-fpm.d/drupal.conf

Changez le nom par défaut en ‘[drupal]‘ et l’utilisateur et le groupe par défaut en ‘nginx‘. Assurez-vous également de changer le fichier sock d’écoute pour le pool PHP-FPM ‘drupal’ en ‘ /run/php-fpm/drupal.sock‘.

[drupal]  
user = nginx  
group = nginx  
listen.owner = nginx  
listen.group = nginx  
listen = /run/php-fpm/drupal.sock

Enregistrez le fichier et quittez l’éditeur lorsque vous avez terminé.

Maintenant, redémarrez le service PHP-FPM via la commande systemctl ci-dessous. Ensuite, vérifiez l’état du service PHP-FPM.

sudo systemctl restart php-fpm  
sudo systemctl status php-fpm

Vous devriez recevoir une sortie comme suit - Le service PHP-FPM fonctionne.

check php-fpm

Ensuite, exécutez la commande suivante pour créer un nouveau fichier PHPINFO ‘ /usr/share/nginx/html/info.php‘.

cat <  
EOF

Enfin, ouvrez le navigateur web et visitez l’adresse IP du serveur suivie du chemin ‘/info.php’ (c’est-à-dire : http://192.168.5.100/info.php). Vous devriez obtenir des informations détaillées sur PHP.

phpinfo

Téléchargement du code source de Drupal

À ce stade, vous avez terminé la configuration du serveur de base de données MariaDB et de PHP-FPM pour l’installation de Drupal. Ensuite, vous allez télécharger la dernière version de Drupal sur votre serveur.

Tout d’abord, déplacez le répertoire de travail actuel vers ‘ /tmp‘ et téléchargez la dernière version de Drupal via la commande wget comme ci-dessous. Vous devriez voir le fichier ‘drupal.tar.gz‘ après que le processus de téléchargement soit terminé.

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

Ensuite, extrayez le fichier ‘drupal.tar.gz‘ en utilisant la commande tar et déplacez le répertoire extrait vers ‘ /var/www/drupal‘, qui sera utilisé comme installation pour Drupal.

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

Enfin, exécutez la commande suivante pour changer la propriété et les permissions du répertoire d’installation de Drupal ‘ /var/www/drupal‘. La propriété doit être l’utilisateur et le groupe ‘nginx‘, afin que le serveur web Nginx puisse lire et accéder au code source de Drupal. Et pour la permission, elle doit être ‘755‘.

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

Configuration de SELinux

Après avoir téléchargé le code source de Drupal, vous allez maintenant configurer SELinux pour Drupal. Vous allez télécharger l’outil de gestion SELinux sur votre serveur et configurer le marquage pour le code source de Drupal et des règles supplémentaires pour Nginx.

Exécutez la commande dnf ci-dessous pour installer le paquet ‘policycoreutils-python-utils‘ pour gérer SELinux sur votre système.

sudo dnf install policycoreutils-python-utils

Lorsque vous êtes invité, saisissez y pour confirmer l’installation et appuyez sur ENTRÉE pour continuer.

install selinux management

Ensuite, exécutez la commande suivante pour configurer le marquage pour le code source de Drupal.

sudo semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/drupal(/.*)?"  
sudo semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/drupal/sites/default/settings.php'  
sudo semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/drupal/sites/default/files'  
  
sudo restorecon -Rv /var/www/drupal

Exécutez la commande suivante pour permettre au serveur web Nginx d’accéder à certains services. Pour l’installation de Drupal, vous devez permettre à Nginx d’accéder aux services de mise en réseau et de messagerie.

sudo setsebool -P httpd_can_sendmail on  
sudo setsebool -P httpd_can_network_connect on

Maintenant que vous avez téléchargé le code source de Drupal et configuré la bonne propriété à l’utilisateur et au groupe ‘nginx‘, configuré la bonne permission à ‘755‘, et configuré SELinux pour Drupal.

Configuration du serveur web Nginx

Maintenant que vous avez terminé certaines configurations du serveur de base de données MariaDB et de PHP-FPM. De plus, vous avez téléchargé le code source de Drupal et configuré SELinux. Dans l’étape suivante, vous allez configurer les blocs de serveur Nginx pour votre domaine.

Avant de commencer, assurez-vous que le nom de domaine est pointé vers l’adresse IP de votre serveur. Assurez-vous également que vous avez généré SSL Letsencrypt.

Créez une nouvelle configuration de blocs de serveur Nginx ‘ /etc/nginx/conf.d/drupal.conf‘ en utilisant l’éditeur nano suivant.

sudo nano /etc/nginx/conf.d/drupal.conf

Ajoutez la configuration suivante au fichier. Et assurez-vous de changer le nom de domaine et le chemin des certificats SSL. Cet exemple utilise le domaine http://drupal.howtoforge.local comme domaine principal pour l’installation de Drupal.

server {  
    listen 80;  
    server_name drupal.howtoforge.local;  
    return 301 https://$host$request_uri;  
}  
  
server {  
    listen 443 http2 ssl;  
    server_name drupal.howtoforge.local;  
  
    root /var/www/drupal;  
  
    ssl_certificate      /etc/letsencrypt/live/drupal.howtoforge.local/fullchain.pem;  
    ssl_certificate_key  /etc/letsencrypt/live/drupal.howtoforge.local/privkey.pem;  
  
    access_log /var/log/nginx/drupal.howtoforge.local.access.log;  
    error_log /var/log/nginx/drupal.howtoforge.local.error.log;  
  
    location = /favicon.ico {  
        log_not_found off;  
        access_log off;  
    }  
  
    location = /robots.txt {  
        allow all;  
        log_not_found off;  
        access_log off;  
    }  
  
    location ~ \\..*/.*\.php$ {  
        return 403;  
    }  
  
    location ~ ^/sites/.*/private/ {  
        return 403;  
    }  
  
    # Bloquer l'accès aux scripts dans le répertoire des fichiers du site  
    location ~ ^/sites/[^/]+/files/.*\.php$ {  
        deny all;  
    }  
    location ~ (^|/)\. {  
        return 403;  
    }  
  
    location / {  
        try_files $uri /index.php?$query_string;  
    }  
  
    location @rewrite {  
        rewrite ^/(.*)$ /index.php?q=$1;  
    }  
    location ~ /vendor/.*\.php$ {  
        deny all;  
        return 404;  
    }  
  
  
    location ~ '\.php$|^/update.php' {  
        fastcgi_split_path_info ^(.+?\.php)(|/.*)$;  
        include fastcgi_params;  
        # Bloquer les attaques httpoxy. Voir https://httpoxy.org/.  
        fastcgi_param HTTP_PROXY "";  
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;  
        fastcgi_param PATH_INFO $fastcgi_path_info;  
        fastcgi_param QUERY_STRING $query_string;  
        fastcgi_intercept_errors on;  
        fastcgi_pass unix:/run/php-fpm/drupal.sock;  
    }  
    location ~ ^/sites/.*/files/styles/ { # Pour Drupal >= 7  
        try_files $uri @rewrite;  
    }  
  
    # Gérer les fichiers privés via Drupal. Le chemin des fichiers privés peut venir  
    # avec un préfixe de langue.  
    location ~ ^(/[a-z\-]+)?/system/files/ { # Pour Drupal >= 7  
        try_files $uri /index.php?$query_string;  
    }  
  
    location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ {  
        try_files $uri @rewrite;  
        expires max;  
        log_not_found off;  
    }  
}

Enregistrez le fichier et quittez l’éditeur lorsque vous avez terminé.

Maintenant, exécutez la commande suivante pour vérifier la configuration de Nginx. Vous devriez obtenir un message de sortie tel que ‘test réussi - syntaxe ok‘, ce qui signifie que vous avez des configurations Nginx correctes et qu’il n’y a pas d’erreur.

sudo nginx -t

Ensuite, exécutez la commande systemctl suivante pour redémarrer le service Nginx et appliquer la nouvelle configuration de bloc de serveur.

sudo systemctl restart nginx

setup nginx drupal

Le service Nginx devrait maintenant fonctionner avec la nouvelle configuration de bloc de serveur ‘/etc/nginx/conf.d/drupal.conf’. Exécutez la commande suivante pour vérifier le service Nginx et vous assurer que le service fonctionne.

sudo systemctl status nginx

Vous devriez obtenir une sortie comme suit - Le service Nginx fonctionne.

check nginx

Vous devriez maintenant pouvoir accéder à votre installation Drupal via votre domaine.

Démarrage de l’installation de Drupal

À ce stade, vous avez terminé la configuration des dépendances de paquets pour Drupal. Maintenant, vous pouvez accéder à votre Drupal via votre domaine.

Dans cette étape, vous allez commencer l’installation de Drupal, et vous allez également configurer les détails concernant votre Drupal et configurer l’utilisateur administrateur pour Drupal.

Ouvrez votre navigateur web et visitez le nom de domaine de votre installation Drupal (c’est-à-dire : https://drupal.howtoforge.local/). Vous devriez obtenir la page d’installation de Drupal.

Sélectionnez la langue pour votre installation de Drupal ou vous pouvez utiliser le défaut ‘English‘ et cliquez sur le bouton ‘Enregistrer et continuer‘.

choose language

Sélectionnez le profil d’installation pour votre installation et cliquez sur ‘Enregistrer et continuer‘. Cet exemple utilise le profil ‘Standard‘.

installation profile

Maintenant, configurez la base de données pour votre installation de Drupal. Saisissez les détails de la base de données MariaDB et de l’utilisateur que vous avez déjà créés ci-dessus.

Cliquez à nouveau sur Enregistrer et continuer.

database details

Et maintenant, l’installation de Drupal va commencer.

installation drupal

Saisissez des informations détaillées sur votre installation de Drupal. Assurez-vous également d’utiliser votre nom d’utilisateur pour l’administrateur Drupal et d’utiliser un mot de passe fort.

Cliquez sur Enregistrer et continuer.

drupal site settings

Lorsque l’installation de Drupal est terminée, vous verrez la page suivante. Vous pouvez voir des messages tels que ‘Félicitations, vous avez installé Drupal !‘.

installation success

Finalisation de l’installation de Drupal

Exécutez la commande suivante pour configurer le marquage pour le fichier de configuration de Drupal et le répertoire.

sudo restorecon -v /var/www/drupal/sites/default/settings.php  
sudo restorecon -Rv /var/www/drupal/sites/default/files

Ensuite, exécutez la commande suivante pour changer la permission du fichier ‘ /var/www/drupal/sites/default/settings.php‘ et le rendre écrivable. Ensuite, éditez le fichier en utilisant l’éditeur nano.

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

Décommentez la ligne de script ‘trusted_host_patterns‘ et ajoutez votre nom de domaine. Cela activera le ‘trusted_host‘ sur votre installation Drupal.

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

Enregistrez le fichier et quittez l’éditeur lorsque vous avez terminé.

Enfin, retournez à votre navigateur web sur votre site Drupal et visitez le rapport d’état à l’URL suivante. Remplacez le nom de domaine principal par votre domaine - ou vous pouvez y accéder via le menu Administration > Rapports.

https://drupal.howtoforge.local/admin/reports/status

Dans le rapport suivant - vous pouvez voir que 25 exigences système pour l’installation de Drupal sont vérifiées. Cela signifie que votre installation de Drupal est correcte et qu’il n’y a pas d’erreurs.

drupal status reports

Conclusion

Dans ce guide, vous avez appris comment installer la dernière version de Drupal v9 sur un serveur Rocky Linux. Vous avez également appris l’installation de la pile LAMP (Linux, Apache2/httpd, MySQL/MariaDB et PHP) et la configuration de base pour héberger Drupal. De plus, vous avez appris comment installer des extensions PHP à partir du dépôt PECL (PHP Extension Community Library).

Avec Drupal en cours d’exécution et sécurisé avec des certificats SSL et la configuration ‘trusted_hosts’ activée, vous pouvez maintenant étendre le déploiement de Drupal en installant de nouveaux thèmes ou en ajoutant des plugins pour votre installation Drupal.

Share: X/Twitter LinkedIn

Recevez de nouveaux articles dans votre boîte de réception.

Aucun spam. Désabonnez-vous à tout moment.