Drupal est un système de gestion de contenu open source bien connu basé sur PHP. Il est disponible gratuitement et publié sous la licence publique générale GNU. Drupal peut être utilisé pour toutes les tailles de sites Web, des énormes sites Web internationaux aux blogs personnels et aux sites d'entreprise ou gouvernementaux.
La partie centrale de Drupal s'appelle "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 didacticiel, nous allons vous montrer comment installer Drupal 9 sur Debian Buster 10. Nous allons exécuter Drupal sous la pile LEMP (Linux, Nginx, MySQL/MariaDB et PHP-FPM) et sécuriser l'installation à l'aide du protocole SSL Letsencrypt. .
Prérequis
Pour ce guide, nous testerons 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 processeurs. De plus, nous avons besoin des privilèges root sudo pour installer de nouveaux packages et modifier certaines configurations du logiciel système.
Qu'allons-nous faire ?
- Installer le serveur Web Nginx
- Installer et configurer PHP-FPM
- Installer et configurer MariaDB
- Générer SSL Letsencrypt
- Configurer Nginx Virtualhost 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.
Mettez à jour les référentiels disponibles sur votre système et mettez à niveau tous les packages vers la dernière version à l'aide de la commande apt ci-dessous.
sudo apt update
sudo apt upgrade
Ensuite, installez les packages de serveur Web Nginx à l'aide de la commande suivante.
sudo apt install nginx -y
Une fois toute l'installation terminée, démarrez le service Nginx et ajoutez-le au démarrage du système.
systemctl start nginx
systemctl enable nginx
Le service Nginx est opérationnel, vérifiez-le à l'aide de la commande suivante.
systemctl status nginx
Vous trouverez ci-dessous le résultat que vous obtiendrez.
En conséquence, le service Nginx est opérationnel sur Debian Buster 10.
Étape 2 - Installer et configurer PHP-FPM
Dans cette étape, nous allons installer et configurer PHP-FPM 7.3 sur Debian 10 pour notre installation Drupal.
Installez les packages 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, allez dans le répertoire '/etc/php/7.3' et modifiez la configuration 'php.ini' à l'aide de l'éditeur vim.
cd /etc/php/7.3/fpm/
vim php.ini
Décommentez et modifiez la configuration des détails comme ci-dessous.
date.timezone = Asia/Singapore
memory_limit = 256M
upload_max_filesize = 64M
max_execution_time = 600
cgi.fix_pathinfo = 0
Enregistrez et fermez.
Ensuite, redémarrez le service PHP-FPM et ajoutez-le au démarrage du système.
systemctl restart php7.3-fpm
systemctl enable php7.3-fpm
Le service PHP-FPM est opérationnel et, par défaut, il s'exécute sous le fichier chaussette
Vérifiez le service PHP-FPM à l'aide de la commande suivante.
ss -plnt | grep php
systemctl status php7.3-fpm
Vous trouverez ci-dessous le résultat que vous obtiendrez.
En conséquence, l'installation et la configuration de PHP-FPM pour Drupal 9 sur Debian Buster 10 sont terminées.
Étape 3 - Installer et configurer le serveur MariaDB
Après avoir installé les packages 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.
Installez les packages MariaDB à l'aide de la commande apt ci-dessous.
sudo apt install mariadb-server mariadb-client
Après cela, démarrez le service MariaDB et ajoutez-le au démarrage du système.
systemctl start mysql
systemctl enable mysql
En conséquence, la base de données MariaDB a été installée sur le serveur Debian.
Ensuite, nous allons configurer le mot de passe pour l'utilisateur root par défaut de MariaDB à l'aide de la commande 'mysql_secure_installation' comme ci-dessous.
mysql_secure_installation
Tapez le mot de passe pour la racine par défaut et tapez '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 root 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.
Connectez-vous au shell MySQL avec l'utilisateur root par défaut et votre mot de passe comme ci-dessous.
mysql -u root -p
Créez 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;
Tapez 'quitter ' ou appuyez sur 'Ctrl+d ' pour quitter le shell MySQL.
En conséquence, la nouvelle base de données et l'utilisateur pour l'installation de Drupal ont été créés.
Étape 4 - Générer SSL Letsencrypt
Pour ce tutoriel, nous allons sécuriser l'installation de Drupal 9 à l'aide du SSL Letsencrypt. Assurez-vous donc que votre nom de domaine correspond à l'adresse IP de votre serveur.
Pour utiliser SSL Letsencrypt, nous devons générer des certificats SSL avec l'outil certbot.
Installez l'outil certbot à l'aide de la commande apt ci-dessous.
sudo apt install certbot -y
Après cela, arrêtez le service Nginx et générez le SSL Letsencrypt pour votre 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
Assurez-vous de changer l'adresse e-mail avec la vôtre. Une fois que tout est terminé, vos certificats SSL seront disponibles dans le répertoire '/etc/letsencrypt/live/votredomaine.com'.
Étape 6 - Configurer Nginx Virtualhost pour Drupal 9
Dans cette étape, nous allons créer une nouvelle configuration d'hôte virtuel Nginx pour Drupal.
Accédez au répertoire etc/nginx/sites-available et créez une nouvelle configuration d'hôte virtuel 'drupal9' à l'aide de l'éditeur vim.
cd /etc/nginx/sites-available/
vim drupal9
Changez le nom de domaine et le chemin des certificats SSL Letsencrypt avec les vôtres, collez-les dedans.
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;
}
}
Enregistrez et fermez.
Ensuite, activez la configuration de l'hôte virtuel Nginx pour Drupal.
ln -s /etc/nginx/sites-available/drupal9 /etc/nginx/sites-enabled/
Testez maintenant la configuration de Nginx et assurez-vous qu'il n'y a pas d'erreur, puis redémarrez le service Nginx.
nginx -t
systemctl restart nginx
En conséquence, la configuration de l'hôte virtuel Nginx pour Drupal est terminée.
Étape 6 - Télécharger Drupal
Dans cette étape, nous allons télécharger et installer la dernière version 9 de Drupal dans le répertoire '/var/www'.
Allez maintenant dans le répertoire '/var/www' et téléchargez le code source 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
Extrayez le code source Drupal et renommez le répertoire en 'drupal9'.
tar -xf drupal-latest.tar.gz
mv drupal-9*/ drupal9/
Après cela, changez la propriété du répertoire d'installation Drupal en 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'.
Étape 7 - Post-installation de Drupal
Ouvrez votre navigateur Web et saisissez votre URL d'installation Drupal dans la barre d'adresse.
https://drupal.hakase-labs.io/
Et vous serez redirigé vers la connexion HTTPS sécurisée.
Choisissez maintenant la langue par défaut de votre installation Drupal. La langue par défaut est 'Anglais '.
Choisissez comme langue préférée et cliquez sur 'Enregistrer et continuer ' bouton.
Sélectionnez votre profil d'installation Drupal et cliquez sur 'Enregistrer et continuer '. Si vous installez Drupal pour la première fois, choisissez le 'Standard ' profil d'installation.
Pour les configurations de la base de données MySQL, saisissez les détails de la base de données créée en haut et cliquez sur 'Enregistrer et continuer ' bouton.
Et vous obtiendrez le processus d'installation de Drupal comme ci-dessous.
Une fois l'installation terminée, configurez le nom de votre site, l'utilisateur administrateur, le mot de passe, l'e-mail, etc.
Cliquez sur 'Enregistrer et continuer ' bouton.
Vous allez maintenant être redirigé vers la page d'index par défaut de Drupal comme ci-dessous.
Cliquez sur 'Configuration ' sur le dessus, et vous obtiendrez le tableau de bord de configuration de l'administrateur Drupal.
En conséquence, l'installation de Drupal 9 avec la pile LEMP sur Debian Buster 10 s'est terminée avec succès.