Comment installer Drupal 9 avec Nginx et Let’s Encrypt SSL sur Debian 10

Drupal est un célèbre système de gestion de contenu open source basé sur PHP. Il est disponible gratuitement et publié sous la licence publique générale GNU. Drupal peut être utilisé pour des sites Web de toutes tailles, des énormes sites internationaux aux blogs personnels en passant par les sites d’entreprises ou gouvernementaux.

La partie centrale de Drupal est appelée « Drupal Core », elle contient le système de gestion de contenu de base, la gestion des utilisateurs, la gestion des menus, la personnalisation de la mise en page et l’administration du système. Drupal Core peut être étendu par des plugins, jusqu’à présent, la communauté drupal a fourni plus de 31 000 modules pour Drupal.

Dans ce tutoriel, nous allons te montrer comment installer Drupal 9 sur la Debian Buster 10. Nous exécuterons Drupal sous la pile LEMP (Linux, Nginx, MySQL/MariaDB et PHP-FPM), et nous sécuriserons l’installation à l’aide du SSL Letsencrypt.

Conditions préalables

Pour ce guide, nous allons tester notre installation Drupal sur la dernière version de Debian Buster 10 avec 2 Go de RAM, 50 Go d’espace disque libre et 2 CPU. Nous avons également besoin des privilèges sudo de root pour installer de nouveaux paquets et modifier la configuration de certains logiciels système.

Que ferons-nous ?

  • Installer le serveur Web Nginx
  • Installer et configurer PHP-FPM
  • Installer et configurer MariaDB
  • Générer SSL Letsencrypt
  • Configurer l’hôte virtuel Nginx pour Drupal 9
  • Télécharger le code source de Drupal 9
  • Post installation de Drupal 9

Étape 1 – Installer le serveur Web Nginx

Tout d’abord, nous allons installer le serveur Web Nginx sur notre serveur Debian.

Mets à jour les dépôts disponibles sur ton système et mets tous les paquets à la dernière version en utilisant la commande apt ci-dessous.

sudo apt update
sudo apt upgrade

Ensuite, installe les paquets du serveur Web Nginx à l’aide de la commande suivante.

sudo apt install nginx -y

Une fois l’installation terminée, démarre le service Nginx et ajoute-le au démarrage du système.

systemctl start nginx
systemctl enable nginx

Le service Nginx est lancé et fonctionne, vérifie-le à l’aide de la commande suivante.

systemctl status nginx

Voici le résultat que tu obtiendras.

Installe Nginx

Le service Nginx est donc opérationnel sur le système Debian Buster 10.

Étape 2 – Installe et configure PHP-FPM

Dans cette étape, nous allons installer et configurer PHP-FPM 7.3 sur la Debian 10 pour notre installation Drupal.

Installe les paquets PHP et PHP-FPM 7.3 à l’aide de la commande apt ci-dessous.

sudo apt install php php-fpm php-gd php-common php-mysql php-apcu php-gmp php-curl php-intl php-mbstring php-xmlrpc php-gd php-xml php-cli php-zip -y

Une fois l’installation terminée, va dans le répertoire ‘/etc/php/7.3’ et modifie la configuration ‘php.ini’ à l’aide de l’éditeur vim.

cd /etc/php/7.3/fpm/
vim php.ini

Décommente et modifie les détails de la configuration comme ci-dessous.

date.timezone = Asia/Singapore
memory_limit = 256M
upload_max_filesize = 64M
max_execution_time = 600
cgi.fix_pathinfo = 0

Enregistre et ferme.

Ensuite, redémarre le service PHP-FPM et ajoute-le au démarrage du système.

systemctl restart php7.3-fpm
systemctl enable php7.3-fpm

Le service PHP-FPM est en marche, et par défaut, il est exécuté sous le fichier sock.

Démarre le service php-fpm

Vérifie le service PHP-FPM à l’aide de la commande suivante.

ss -plnt | grep php
systemctl status php7.3-fpm

Voici le résultat que tu obtiendras.

Vérifie le service php-fpm et le fichier sock

L’installation et la configuration de PHP-FPM pour Drupal 9 sur Debian Buster 10 sont donc terminées.

Étape 3 – Installe et configure le serveur MariaDB

Après avoir installé les paquets PHP et PHP-FPM, nous allons installer la base de données MariaDB et créer une nouvelle base de données pour Drupal 9.

Installe les paquets MariaDB à l’aide de la commande apt ci-dessous.

sudo apt install mariadb-server mariadb-client

Ensuite, démarre le service MariaDB et ajoute-le au démarrage du système.

systemctl start mysql
systemctl enable mysql

Ainsi, la base de données MariaDB a été installée sur le serveur Debian.

Configurer le mot de passe de la racine de MySQL

Ensuite, nous allons configurer le mot de passe de l’utilisateur root par défaut de MariaDB en utilisant la commande ‘mysql_secure_installation’ comme ci-dessous.

mysql_secure_installation

Saisis le mot de passe de la racine par défaut et tape‘Y‘ pour toutes les options.

Enter current password for root (enter for none): 
OK, successfully used password, moving on...

Set a root password? [Y/n] Y
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

Et le mot de passe de la racine MariaDB a été configuré.

Ensuite, nous devons accéder au shell MySQL et créer une nouvelle base de données et un nouvel utilisateur pour notre installation Drupal.

Connecte-toi au shell MySQL avec l’utilisateur root par défaut et ton mot de passe comme ci-dessous.

mysql -u root -p

Crée une nouvelle base de données nommée ‘drupaldb’ et l’utilisateur ‘drupaluser’ avec le mot de passe ‘[email protected]’ en utilisant les requêtes MySQL ci-dessous.

create database drupaldb;
create user [email protected] identified by '[email protected]';
grant all privileges on drupaldb.* to [email protected] identified by '[email protected]';
flush privileges;

Tape‘exit‘ ou appuie sur le bouton‘Ctrl+d‘ pour quitter le shell MySQL.

Créer une base de données pour drupal

En conséquence, la nouvelle base de données et le nouvel utilisateur pour l’installation de Drupal ont été créés.

Étape 4 – Générer le SSL Letsencrypt

Pour ce tutoriel, nous allons sécuriser l’installation de Drupal 9 en utilisant le SSL Letsencrypt. Assure-toi donc que ton nom de domaine correspond à l’adresse IP de ton serveur.

Pour utiliser le SSL Letsencrypt, nous devons générer des certificats SSL avec l’outil certbot.

Installe l’outil certbot à l’aide de la commande apt ci-dessous.

sudo apt install certbot -y

Après cela, arrête le service Nginx et génère le SSL Letsencrypt pour ton nom de domaine Drupal à l’aide de la commande suivante.

systemctl stop nginx
certbot certonly --rsa-key-size 2048 --standalone --agree-tos --no-eff-email --email [email protected] -d drupal.hakase-labs.io

Veille à modifier l’adresse e-mail avec la tienne. Une fois que tout est terminé, tes certificats SSL seront disponibles dans le répertoire ‘/etc/letsencrypt/live/tondomaine.com’.

Étape 6 – Configurer le Virtualhost Nginx pour Drupal 9

Dans cette étape, nous allons créer une nouvelle configuration d’hôte virtuel Nginx pour Drupal.

Va dans le répertoire etc/nginx/sites-available et crée une nouvelle configuration d’hôte virtuel ‘drupal9’ à l’aide de l’éditeur vim.

cd /etc/nginx/sites-available/
vim drupal9

Change le nom de domaine et le chemin des certificats SSL Letsencrypt avec tes propres certificats, puis colle-les.

server {
    server_name drupal.hakase-labs.io;
    root /var/www/drupal9; ## <-- Your only path reference.

    listen 80;
    listen [::]:80;
    listen 443 default ssl;

    ssl_certificate      /etc/letsencrypt/live/drupal.hakase-labs.io/fullchain.pem;
    ssl_certificate_key  /etc/letsencrypt/live/drupal.hakase-labs.io/privkey.pem;

    # Redirect HTTP to HTTPS
    if ($scheme = http) {
        return 301 https://$server_name$request_uri;
    }

    location = /favicon.ico {
        log_not_found off;
        access_log off;
    }

    location = /robots.txt {
        allow all;
        log_not_found off;
        access_log off;
    }

    # Very rarely should these ever be accessed outside of your lan
    location ~* \.(txt|log)$ {
        allow 192.168.0.0/16;
        deny all;
    }

    location ~ \..*/.*\.php$ {
        return 403;
    }

    location ~ ^/sites/.*/private/ {
        return 403;
    }

    # Block access to "hidden" files and directories whose names begin with a
    # period. This includes directories used by version control systems such
    # as Subversion or Git to store control files.
    location ~ (^|/)\. {
        return 403;
    }

    location / {
        # try_files $uri @rewrite; # For Drupal <= 6
        try_files $uri /index.php?$query_string; # For Drupal >= 7
    }

    location @rewrite {
        rewrite ^/(.*)$ /index.php?q=$1;
    }

    # In Drupal 8, we must also match new paths where the '.php' appears in the middle,
    # such as update.php/selection. The rule we use is strict, and only allows this pattern
    # with the update.php front controller.  This allows legacy path aliases in the form of
    # blog/index.php/legacy-path to continue to route to Drupal nodes. If you do not have
    # any paths like that, then you might prefer to use a laxer rule, such as:
    #   location ~ \.php(/|$) {
    # The laxer rule will continue to work if Drupal uses this new URL pattern with front
    # controllers other than update.php in a future release.
    location ~ '\.php$|^/update.php' {
        fastcgi_split_path_info ^(.+?\.php)(|/.*)$;
        #NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
        include fastcgi_params;
        include snippets/fastcgi-php.conf;
        fastcgi_param SCRIPT_FILENAME $request_filename;
        fastcgi_intercept_errors on;
        fastcgi_pass unix:/run/php/php7.3-fpm.sock;
    }

    # Fighting with Styles? This little gem is amazing.
    # location ~ ^/sites/.*/files/imagecache/ { # For Drupal <= 6
    location ~ ^/sites/.*/files/styles/ { # For Drpal >= 7
        try_files $uri @rewrite;
    }

    location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
        expires max;
        log_not_found off;
    }
}

Sauvegarde et ferme.

Ensuite, active la configuration de l’hôte virtuel Nginx pour Drupal.

ln -s /etc/nginx/sites-available/drupal9 /etc/nginx/sites-enabled/

Maintenant, teste la configuration de Nginx et assure-toi qu’il n’y a pas d’erreur, puis redémarre le service Nginx.

nginx -t
systemctl restart nginx

Ainsi, la configuration de l’hôte virtuel Nginx pour Drupal est terminée.

Configurer l'hôte virtuel Nginx pour Drupal

Étape 6 – Télécharger Drupal

Dans cette étape, nous allons télécharger et installer la dernière version de Drupal 9 dans le répertoire ‘/var/www’.

Va maintenant dans le répertoire ‘/var/www’ et télécharge le code source de Drupal en utilisant la commande wget comme ci-dessous.

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

Extrais le code source de Drupal et renomme le répertoire en ‘drupal9’.

tar -xf drupal-latest.tar.gz
mv drupal-9*/ drupal9/

Ensuite, change la propriété du répertoire d’installation de Drupal pour l’utilisateur ‘www-data’.

chown -R www-data:www-data /var/www/drupal9

Par conséquent, le répertoire d’installation de Drupal se trouve dans le répertoire ‘/var/www/drupal9’.

Télécharge le code source de Drupal 9

Étape 7 – Installation du post Drupal

Ouvre ton navigateur Web et tape l’URL de ton installation Drupal dans la barre d’adresse.

https://drupal.hakase-labs.io/

Et tu seras redirigé vers la connexion sécurisée HTTPS.

Choisis maintenant la langue par défaut pour ton installation Drupal. La langue par défaut est‘English‘.

Langue d'installation de Drupal

Choisis la langue de ton choix et clique sur le bouton‘Enregistrer et continuer‘.

Sélectionne ton profil d’installation Drupal et clique sur‘Enregistrer et continuer‘. Si c’est la première fois que tu installes Drupal, choisis le profil d’installation‘Standard‘.

Type d'installation Drupal

Pour les configurations de la base de données MySQL, tape les détails de la base de données créée en haut et clique sur le bouton‘Enregistrer et continuer‘.

Configurer la base de données pour Drupal

Et tu obtiendras le processus d’installation de Drupal comme ci-dessous.

Drupal Installation Process

Une fois l’installation terminée, configure le nom de ton site, l’utilisateur admin, le mot de passe, l’email, etc.

Configuration du site Drupal

Clique sur le bouton« Enregistrer et continuer« .

Tu seras maintenant redirigé vers la page d’index par défaut de Drupal comme ci-dessous.

Page d'accueil de drupal

Clique sur le menu‘Configuration‘ en haut, et tu obtiendras le tableau de bord de configuration de Drupal Admin.

Drupal Admin Dashboard

En conséquence, l’installation de Drupal 9 avec la pile LEMP sur Debian Buster 10 a été effectuée avec succès.

Vous aimerez aussi...