GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Installer plusieurs instances Drupal avec Nginx sur Ubuntu 20.04

Drupal est une plate-forme gratuite, évolutive et ouverte utilisée pour créer et gérer le contenu d'un site Web. Il a une grande communauté et est utilisé par des millions de personnes et d'organisations à travers le monde. Drupal fournit une interface Web simple et conviviale qui vous aide à créer une variété de sites Web allant des sites Web personnels aux grands sites Web communautaires.

Dans ce guide, nous allons vous montrer comment déployer plusieurs instances Drupal avec Nginx sur Ubuntu 20.04.

Prérequis

  • Un serveur exécutant Ubuntu 20.04.
  • Deux noms de domaine valides pointant vers l'adresse IP de votre serveur.
  • Un mot de passe root est configuré sur le serveur.

Étape 1 :Installer les dépendances requises

Tout d'abord, vous devrez mettre à jour vos packages système vers la version mise à jour et installer les dépendances requises sur votre système. Vous pouvez le faire avec la commande suivante :

apt-get update -y
apt-get install gnupg2 software-properties-common unzip git wget -y

Une fois toutes les dépendances installées, vous pouvez passer à l'étape suivante.

Étape 2 :Installer Nginx et MariaDB

Ici, nous allons héberger Drupal avec Nginx. Nginx doit donc être installé sur votre serveur. S'il n'est pas installé, vous pouvez l'installer avec la commande suivante :

apt-get install nginx -y

Après avoir installé Nginx, vous devrez installer la dernière version de MariaDB sur votre serveur. Par défaut, la dernière version de MariaDB n'est pas incluse dans le référentiel par défaut d'Ubuntu 20.04. Vous devrez donc ajouter le référentiel MariaDB à APT.

Tout d'abord, ajoutez la clé GPG avec la commande suivante :

apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8

Ensuite, ajoutez le référentiel MariaDB avec la commande suivante :

add-apt-repository "deb [arch=amd64,arm64,ppc64el] http://mariadb.mirror.liquidtelecom.com/repo/10.4/ubuntu $(lsb_release -cs) main"

Une fois le référentiel ajouté, mettez à jour le référentiel et installez la dernière version de MariaDB avec la commande suivante :

apt-get update -y
apt-get install mariadb-server -y

Une fois le serveur MariaDB installé, vous pouvez passer à l'étape suivante.

Étape 3 :Installer PHP 7.4

Drupal ne prend pas en charge PHP 8.0. Vous devrez donc installer PHP 7.4 sur votre système. Vous pouvez installer PHP version 7.4 avec les autres extensions requises avec la commande suivante :

apt-get install php7.4 php7.4-fpm php7.4-gd php7.4-common php7.4-mysql php7.4-apcu php7.4-gmp php7.4-curl php7.4-intl php7.4-mbstring php7.4-xmlrpc php7.4-gd php7.4-xml php7.4-cli php7.4-zip -y

Une fois tous les packages installés, modifiez le fichier php.ini et apportez quelques modifications :

nano /etc/php/7.4/fpm/php.ini

Modifiez les lignes suivantes :

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

Enregistrez et fermez le fichier puis redémarrez le PHP-FPM pour appliquer les modifications :

systemctl restart php7.4-fpm

Étape 4 :Créer une base de données Drupal

Ensuite, vous devrez créer une base de données et un utilisateur pour les deux instances Drupal.

Tout d'abord, connectez-vous à MySQL avec la commande suivante :

mysql

Une fois connecté, créez une base de données pour les deux instances Drupal avec la commande suivante :

MariaDB [(none)]> create database drupal1db;
MariaDB [(none)]> create database drupal2db;

Ensuite, créez un utilisateur de base de données pour les deux instances Drupal avec la commande suivante :

MariaDB [(none)]> create user [email protected] identified by 'password';
MariaDB [(none)]> create user [email protected] identified by 'password';

Ensuite, accordez tous les privilèges aux deux bases de données Drupal avec la commande suivante :

MariaDB [(none)]> grant all privileges on drupal1db.* to [email protected] identified by 'password';
MariaDB [(none)]> grant all privileges on drupal2db.* to [email protected] identified by 'password';

Ensuite, videz les privilèges et quittez MySQL avec la commande suivante :

MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit;

Une fois que vous avez terminé, vous pouvez passer à l'étape suivante.

Étape 5 :Téléchargez Drupal

Ensuite, vous devrez télécharger la dernière version de Drupal depuis son site officiel.

Tout d'abord, changez le répertoire en racine Web Nginx avec la commande suivante :

cd /var/www/html

Ensuite, téléchargez la dernière version de Drupal avec la commande suivante :

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

Ensuite, extrayez le fichier téléchargé avec la commande suivante :

tar -xf drupal-latest.tar.gz

Ensuite, copiez le répertoire extrait vers drupal1 et drupal2 :

cp -r drupal-9.1.5 drupal1
cp -r drupal-9.1.5 drupal2

Ensuite, définissez la propriété appropriée avec la commande suivante :

chown -R www-data:www-data /var/www/html/drupal*

Une fois que vous avez terminé, vous pouvez passer à l'étape suivante.

Étape 6 :Configurer Nginx

Ensuite, vous devrez créer deux fichiers de configuration d'hôte virtuel Nginx pour chaque instance Drupal.

Commencez par créer un fichier de configuration d'hôte virtuel Nginx pour la première instance Drupal :

nano /etc/nginx/conf.d/drupal1.conf

Ajoutez les lignes suivantes :

server {
    listen 80;
    root /var/www/html/drupal1;
    index  index.php index.html index.htm;
    server_name drupal1.example.com;

    location / {
    try_files $uri /index.php?$query_string;
    }

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

    location ~ [^/]\.php(/|$) {
         include snippets/fastcgi-php.conf;
         fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
         fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
         include fastcgi_params;
    }

    location ~ ^/sites/.*/files/styles/ { # For Drupal >= 7
               try_files $uri @rewrite;
        }

    location ~ ^(/[a-z\-]+)?/system/files/ { # For Drupal >= 7
        try_files $uri /index.php?$query_string;
        }
}

Enregistrez et fermez le fichier lorsque vous avez terminé.

Ensuite, créez un fichier de configuration d'hôte virtuel Nginx pour la deuxième instance Drupal :

nano /etc/nginx/conf.d/drupal2.conf

Ajoutez les lignes suivantes :

server {
    listen 80;
    root /var/www/html/drupal2;
    index  index.php index.html index.htm;
    server_name drupal2.example.com;

    location / {
    try_files $uri /index.php?$query_string;
    }

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

    location ~ [^/]\.php(/|$) {
         include snippets/fastcgi-php.conf;
         fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
         fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
         include fastcgi_params;
    }

    location ~ ^/sites/.*/files/styles/ { # For Drupal >= 7
               try_files $uri @rewrite;
        }

    location ~ ^(/[a-z\-]+)?/system/files/ { # For Drupal >= 7
        try_files $uri /index.php?$query_string;
        }
}

Enregistrez et fermez le fichier lorsque vous avez terminé, puis vérifiez le Nginx pour toute erreur de syntaxe avec la commande suivante :

nginx -t

Vous devriez voir le résultat suivant :

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Ensuite, redémarrez le service Nginx pour appliquer les modifications :

systemctl restart nginx

Vous pouvez également vérifier l'état du Nginx avec la commande suivante :

systemctl status nginx

Vous devriez obtenir le résultat suivant :

? nginx.service - A high performance web server and a reverse proxy server
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2021-03-23 08:50:47 UTC; 6s ago
       Docs: man:nginx(8)
    Process: 19946 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
    Process: 19959 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
   Main PID: 19964 (nginx)
      Tasks: 2 (limit: 2353)
     Memory: 2.7M
     CGroup: /system.slice/nginx.service
             ??19964 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
             ??19965 nginx: worker process

Mar 23 08:50:47 ubuntu2004 systemd[1]: Starting A high performance web server and a reverse proxy server...
Mar 23 08:50:47 ubuntu2004 systemd[1]: Started A high performance web server and a reverse proxy server.

Étape 7 :Accéder à Drupal

Maintenant, ouvrez votre navigateur Web et tapez l'URL http://drupal1.example.com ou http://drupal2.example.com . Vous serez redirigé vers l'assistant d'installation Web de Drupal comme indiqué ci-dessous :

Sélectionnez votre langue et cliquez sur Enregistrer et continuer bouton. Vous devriez voir la page suivante :

Sélectionnez le type d'installation standard et cliquez sur Enregistrer et continuer bouton. Vous devriez voir la page suivante :

Fournissez les détails de votre base de données et cliquez sur Enregistrer et continuer bouton. Vous devriez voir la page suivante :

Fournissez les informations de votre site et cliquez sur Enregistrer et continuer bouton. Vous devriez voir le tableau de bord Drupal sur la page suivante :

Conclusion

Dans le post ci-dessus, vous avez appris à déployer plusieurs instances Drupal avec Nginx sur le serveur Ubuntu 20.04. Vous pouvez maintenant déployer n'importe quel nombre d'instances Drupal sur votre serveur. Il vous suffit de définir le nom de domaine et le chemin d'installation Drupal pour chaque nouvelle instance Drupal. N'hésitez pas à me demander si vous avez des questions.


Ubuntu
  1. Comment installer Nextcloud avec Nginx sur Ubuntu 18.04 LTS

  2. Comment installer Seafile avec Nginx sur Ubuntu 20.04 LTS

  3. Comment installer SuiteCRM avec Nginx sur Ubuntu 16.04

  4. Comment installer Magento 2 avec Nginx et Letsencrypt sur Ubuntu 18.04

  5. Installer Nextcloud avec Nginx sur Ubuntu 20.04 LTS - Guide étape par étape ?

Comment installer plusieurs WordPress avec Nginx sur Ubuntu 18.04

Installer WordPress sur Ubuntu 20.04 avec Apache, MariaDB, PHP7.4 (LAMP)

Installer WordPress sur Ubuntu 20.04 avec Nginx, MariaDB, PHP7.4 (LEMP)

Comment installer WordPress 4.7 sur Ubuntu 16.04 avec Apache, MariaDB, PHP7

Installer WordPress sur Ubuntu 18.04 avec Nginx, MariaDB, PHP7.2 (LEMP)

Comment installer la pile LEMP (Nginx, MariaDB, PHP7.1) sur Ubuntu 17.10