GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment installer Drupal 8.1 avec Nginx, PHP-FPM et SSL sur Ubuntu 16.04

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 installer Drupal 8.1.10 avec le serveur Web Nginx, MariaDB 10 comme serveur de base de données et PHP-FPM (PHP 7.0) pour gérer les requêtes PHP. Je vais également vous montrer comment installer un certificat SSL pour sécuriser le site Drupal.

Prérequis

  • Ubuntu 16.04 – Version 64 bits.
  • Privilèges racine.

Étape 1 - Mettre à jour le système Ubuntu

Connectez-vous au serveur ubuntu avec ssh, puis devenez utilisateur root et mettez à jour le référentiel ubuntu :

sudo su
sudo apt-get update

Étape 2 - Installer Nginx et PHP-FPM

Nginx ou "engine-x" est un serveur HTTP rapide qui se concentre sur des performances élevées avec une faible utilisation de la mémoire/RAM. Nous pouvons également utiliser Nginx comme proxy inverse, pour les protocoles HTTP, HTTPS, POP3 et IMAP. Dans ce didacticiel, nous utiliserons Nginx comme serveur HTTP compatible SSL.

Installez Nginx avec la commande apt suivante en tant qu'utilisateur sudo/root :

sudo apt-get install nginx -y

Ensuite, installez php7.0-fpm avec l'extension php-gd requise par le noyau Drupal :

sudo apt-get install php7.0-fpm php7.0-cli php7.0-gd php7.0-mysql php7.0-xml -y

Dans l'étape suivante, nous allons configurer Nginx.

Étape 3 - Configurer Nginx et PHP-FPM

Dans cette étape, nous allons configurer Nginx pour utiliser php-fpm pour servir les requêtes HTTP pour les pages PHP. Allez dans le répertoire php-fpm "/etc/php/7.0/fpm" et éditez le fichier "php.ini":

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

En ligne 761 , décommentez la ligne cgi.fix_pathinfo et changez la valeur en "0 ".

cgi.fix_pathinfo=0

Enregistrez le fichier et quittez l'éditeur.

Nous modifions maintenant la configuration par défaut de l'hôte virtuel Nginx. Modifiez le fichier "default" et activez la directive php-fpm.

cd /etc/nginx/sites-available/
vim par défaut

Décommentez la ligne 51 - 58 utiliser php-fpm avec nginx.

 location ~ \.php$ { include snippets/fastcgi-php.conf; # # # Avec php7.0-cgi seul :# fastcgi_pass 127.0.0.1:9000; # # Avec php7.0-fpm :fastcgi_pass unix:/run/php/php7.0-fpm.sock; } 

Enregistrez le fichier et quittez.

Testez ensuite la configuration Nginx avec la commande "nginx -t " pour s'assurer qu'il est valide :

nginx -t

S'il n'y a pas d'erreur, redémarrez nginx et le service php-fpm :

systemctl redémarrer nginx
systemctl redémarrer php7.0-fpm

Ensuite, testez que php-fpm fonctionne correctement avec nginx en créant un nouveau fichier d'informations php dans le répertoire Web "/var/www/html".

cd /var/www/html/
echo ""> info.php

Visitez le fichier info.php à l'adresse IP du serveur (dans mon cas http://192.168.1.4/info.php)  dans un navigateur Web. Le résultat devrait ressembler à la capture d'écran ci-dessous.

Étape 4 - Installer et configurer MariaDB

MariaDB est un fork de serveur de base de données du système de gestion de base de données relationnelle MYSQL, il offre une fonctionnalité de remplacement pour MySQL.

Installez la dernière version de MariaDB avec la commande apt-get :

sudo apt-get install mariadb-client mariadb-server -y

Une fois l'installation terminée, démarrez MariaDB :

systemctl démarrer mysql

Le nom du service MariaDB est "mysql", c'est pourquoi la commande systemctl utilise le mot mysql ici.

Nous allons maintenant configurer le nom d'utilisateur et le mot de passe MariaDB avec la commande ci-dessous :

mysql_secure_installation
mysql_secure_installation

Définir le mot de passe root ? [O/n] O
Nouveau mot de passe :
Saisir à nouveau le nouveau mot de passe :

Supprimer les utilisateurs anonymes ? [O/n] O
 ... Succès !

Interdire la connexion root à distance ? [O/n] O
 ... Succès !

Supprimer la base de données de test et y accéder ? [O/n] O
 ... Succès !

Recharger les tables de privilèges maintenant ? [O/n] O
 ... Succès !

Connectez-vous au shell MariaDB avec votre mot de passe et créez une nouvelle base de données pour Drupal appelée "drupaldb " et créez un nouvel utilisateur MariaDB/MySQL "drupaluser " avec le mot de passe "[email protected] " et enfin accordez à l'utilisateur des autorisations sur la base de données. Veuillez choisir un mot de passe sécurisé au lieu de "[email protected]" pour votre installation !

mysql -u root -p


créer une base de données drupaldb ;
créer un utilisateur [email protected] identifié par '[email protected]' ;
accorder à tous privilèges sur drupaldb.* à [email protected] identifié par '[email protected]' ;
flush privilèges ;
\q

La base de données "drupaldb " avec l'utilisateur "drupaluser " ont été créés.

Étape 5 - Générer un certificat SSL auto-signé

Allez dans /etc/nginx répertoire et créez un nouveau répertoire avec le nom "ssl" pour le fichier de configuration SSL.

mkdir -p /etc/nginx/ssl
cd /etc/nginx/ssl

Générez ensuite un nouveau certificat SSL auto-signé avec la commande openssl ci-dessous :

openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/nginx/ssl/drupal.key -out /etc/nginx/ssl/drupal.crt

Remplissez les informations demandées. Le fichier de certificat SSL a été généré, changez maintenant les permissions du fichier de clé privée "drupal.key" à 600 :

chmod 600 clé drupal

Étape 6 - Configurer le VirtualHost pour Drupal

Nous allons installer Drupal 8 dans le répertoire "/var/www/drupal8" avec le nom de domaine "drupal8.me". Veuillez remplacer le nom de domaine de votre installation par le nom de domaine du site Web pour lequel vous souhaitez utiliser cette installation Drupal. Créons donc le répertoire :

mkdir -p /var/www/drupal8

Allez ensuite dans le répertoire Nginx virtualhost "/etc/nginx/sites-available/" et créez un nouveau fichier "drupal8" avec l'éditeur vim :

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

Collez la configuration Nginx pour drupal ci-dessous dans le fichier drupal8 :

serveur { nom_serveur drupal8.me ; racine /var/www/drupal8; ## <-- Votre seule référence de chemin. écouter 80 ; écouter [::]:80 ; écouter 443 ssl par défaut ; certificat_ssl /etc/nginx/ssl/drupal.crt ; clé_certificat_ssl /etc/nginx/ssl/drupal.key ; # Rediriger HTTP vers HTTPS if ($scheme =http) { return 301 https://$server_name$request_uri; } location =/favicon.ico { log_not_found off ; access_log off ; } location =/robots.txt { tout autoriser ; log_not_found désactivé ; access_log off ; } # Il est très rare qu'ils soient accessibles en dehors de votre emplacement LAN ~* \.(txt|log)$ { allow 192.168.0.0/16; Nier tous; } emplacement ~ \..*/.*\.php$ { return 403; } emplacement ~ ^/sites/.*/private/ { return 403; } # Bloquer l'accès aux fichiers et répertoires "cachés" dont les noms commencent par # un point. Cela inclut les répertoires utilisés par les systèmes de contrôle de version # tels que Subversion ou Git pour stocker les fichiers de contrôle. emplacement ~ (^|/)\. { retour 403 ; } emplacement / { # try_files $uri @rewrite; # Pour Drupal <=6 try_files $uri /index.php?$query_string; # Pour Drupal>=7 } location @rewrite { rewrite ^/(.*)$ /index.php?q=$1; } # Dans Drupal 8, nous devons également faire correspondre les nouveaux chemins où le '.php' apparaît au milieu, # comme update.php/selection. La règle que nous utilisons est stricte et n'autorise ce modèle # qu'avec le contrôleur frontal update.php. Cela permet aux alias de chemin hérités sous la forme de # blog/index.php/legacy-path de continuer à router vers les nœuds Drupal. Si vous n'avez # aucun chemin de ce type, vous préférerez peut-être utiliser une règle plus souple, telle que :# location ~ \.php(/|$) { # La règle plus souple continuera à fonctionner si Drupal utilise cette nouvelle URL modèle avec des contrôleurs # frontaux autres que update.php dans une future version. emplacement ~ '\.php$|^/update.php' { fastcgi_split_path_info ^(.+?\.php)(|/.*)$; #REMARQUE :Vous devriez avoir "cgi.fix_pathinfo =0 ;" dans php.ini, incluez fastcgi_params ; inclure snippets/fastcgi-php.conf ; fastcgi_param SCRIPT_FILENAME $request_filename ; fastcgi_intercept_errors activé ; fastcgi_pass unix:/run/php/php7.0-fpm.sock ; } # Se battre avec des styles ? Ce petit bijou est incroyable. # emplacement ~ ^/sites/.*/files/imagecache/ { # Pour Drupal <=6 emplacement ~ ^/sites/.*/files/styles/ { # Pour Drpal>=7 try_files $uri @rewrite; } emplacement ~* \.(js|css|png|jpg|jpeg|gif|ico)$ { expire max ; log_not_found désactivé ; }}

Enregistrez le fichier et quittez l'éditeur.

Le fichier d'hôte virtuel Drupal a été créé, nous devons maintenant l'activer en créant un lien symbolique vers le fichier dans le répertoire "sites-enabled" :

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

Testez la configuration Nginx et redémarrez Nginx :

nginx -t
systemctl redémarre nginx

Étape 7 - Installer et configurer Drupal

Nous devons installer git et drush avant de commencer l'installation de Drupal. Drush est un shell de ligne de commande et une interface de script Unix pour Drupal. Installez-le avec apt la commande suivante :

sudo apt-get install git drush -y

Entrez ensuite dans le répertoire drupal8 que nous avons créé précédemment et téléchargez Drupal avec wget ou drush. Je vais utiliser wget ici :

cd /var/www/drupal8
wget https://ftp.drupal.org/files/projects/drupal-8.1.10.tar.gz

Si vous souhaitez utiliser drush, exécutez plutôt la commande ci-dessous :

drush dl drupal-8

Attendez la fin du téléchargement, puis déplacez tous les fichiers Drupal dans le répertoire principal :

tar -xzvf drupal-8.1.10.tar.gz
mv drupal-8.1.10/* .
rm -rf drupal-8.1.10

Dans l'étape suivante, nous allons configurer le fichier de paramètres Drupal. Depuis le répertoire principal de Drupal, allez dans le répertoire "sites/default" et copiez les deux fichiers de configuration "settings.php " et "services.yml " :

cd sites/default
cp default.settings.php settings.php
cp default.services.yml services.yml

Ensuite, nous devons créer un nouveau répertoire avec le nom "files " dans le répertoire "sites/default". La commande "chmod" garantit que le fichier de configuration et le répertoire "files" sont accessibles en écriture pour l'installation de Drupal :

fichiers mkdir/
chmod a+w *

Visitez maintenant votre site Drupal (dans mon cas http://drupal8.me) avec le navigateur Web, vous serez automatiquement redirigé vers la connexion https et la page d'installation de Drupal s'affichera.

Veuillez noter que ce guide vient d'être mis à jour de Drupal 8.1.8 à 8.1.10 dans les commandes pour inclure les derniers correctifs de sécurité pour Drupal publiés aujourd'hui, les captures d'écran affichent toujours le numéro de version 8.1.8 car l'interface n'a pas changé . Vous devez toujours utiliser la dernière version stable de Drupal pour votre installation et remplacer le numéro de version dans les commandes d'installation ci-dessus.

Choisissez votre langue, j'utiliserai "Anglais" ici.

Cliquez sur "Enregistrer et continuer" .

Sélectionnez maintenant le type d'installation. Vous pouvez utiliser le type standard ou minimal. J'utiliserai "Standard ".

Vous verrez maintenant la page de configuration de la base de données. Remplissez les détails de la base de données que nous avons créée pour Drupal.

Attendez que l'installation soit terminée.

Nous devons maintenant configurer les paramètres du profil du site comme nom du site, utilisateur et mot de passe pour l'administrateur, adresse e-mail etc.

Maintenant Drupal est installé. Vous serez redirigé vers la page d'accueil de Drupal.

Vous pouvez voir un message d'erreur concernant les autorisations des fichiers de configuration Drupal "settings.php" et "services.yml". Modifiez simplement leur autorisation avec les commandes suivantes :

cd sites/default/
chmod 644 settings.php services.yml

Maintenant Drupal 8.1 est installé avec Nginx et SSL sur Ubuntu 16.04.

Conclusion

Drupal est un framework de gestion de contenu gratuit et open source basé sur PHP. Il peut être utilisé pour un blog personnel, une page d'accueil privée ou un site Web d'entreprise. Drupal est distribué sous la licence GNU-GPL. Le composant principal de Drupal s'appelle le "Drupal Core" et jusqu'à présent, la communauté Drupal a développé plus de 31 000 modules pour l'étendre. La version stable actuelle est la 8.1.10. Drupal est facile à installer et à configurer, nous pouvons utiliser Nginx ou Apache comme serveur Web et PHP-FPM pour gérer les requêtes PHP sur un serveur Drupal.


Ubuntu
  1. Comment installer PHP 7.4 et 8.0 sur Ubuntu 18.04 ou 20.04

  2. Comment installer Nginx avec PHP5 et MySQL sur Ubuntu 11.10

  3. Comment installer et configurer PHP et Nginx (LEMP) sur Ubuntu 20.04

  4. Installer OwnCloud 7 avec Nginx et PHP-FPM sur un VPS Ubuntu

  5. Comment installer PHP 7.4 avec Nginx sur Ubuntu 20.04

Comment installer Nginx avec PHP et MySQL (pile LEMP) sur Ubuntu 20.04 LTS

Comment installer Drupal avec Nginx et Lets Encrypt SSL sur Ubuntu 20.04 LTS

Comment installer Moodle avec Nginx et Lets Encrypt SSL sur Ubuntu 20.04

Comment installer Grav CMS avec Nginx sur Ubuntu 20.04

Comment installer WonderCMS sur Ubuntu 20.04 (avec Nginx)

Comment installer Lighttpd avec PHP et MariaDB sur Ubuntu 15.04