GNU/Linux >> Znalost Linux >  >> Ubuntu

Nainstalujte více instancí Drupal s Nginx na Ubuntu 20.04

Drupal je bezplatná, škálovatelná a otevřená platforma používaná k vytváření a správě obsahu webových stránek. Má velkou komunitu a používají ho miliony lidí a organizací po celém světě. Drupal poskytuje jednoduché a uživatelsky přívětivé webové rozhraní, které vám pomůže vytvářet různé weby, od osobních webů po velké weby řízené komunitou.

V této příručce vám ukážeme, jak nasadit více instancí Drupalu s Nginx na Ubuntu 20.04.

Předpoklady

  • Server se systémem Ubuntu 20.04.
  • Dva platné názvy domén označené IP adresou vašeho serveru.
  • Na serveru je nakonfigurováno heslo uživatele root.

Krok 1:Instalace požadovaných závislostí

Nejprve budete muset aktualizovat své systémové balíčky na aktualizovanou verzi a nainstalovat požadované závislosti do vašeho systému. Můžete to udělat pomocí následujícího příkazu:

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

Jakmile jsou všechny závislosti nainstalovány, můžete přejít k dalšímu kroku.

Krok 2:Instalace Nginx a MariaDB

Zde budeme hostit Drupal s Nginx. Takže Nginx musí být nainstalován na vašem serveru. Pokud není nainstalován, můžete jej nainstalovat pomocí následujícího příkazu:

apt-get install nginx -y

Po instalaci Nginx budete muset na svůj server nainstalovat nejnovější verzi MariaDB. Ve výchozím nastavení není nejnovější verze MariaDB zahrnuta ve výchozím úložišti Ubuntu 20.04. Takže budete muset přidat úložiště MariaDB do APT.

Nejprve přidejte klíč GPG pomocí následujícího příkazu:

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

Dále přidejte úložiště MariaDB pomocí následujícího příkazu:

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

Jakmile je úložiště přidáno, aktualizujte úložiště a nainstalujte nejnovější verzi MariaDB pomocí následujícího příkazu:

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

Jakmile je server MariaDB nainstalován, můžete přejít k dalšímu kroku.

Krok 3:Instalace PHP 7.4

Drupal nepodporuje PHP 8.0. Budete tedy muset do svého systému nainstalovat PHP 7.4. PHP verze 7.4 s dalšími požadovanými rozšířeními můžete nainstalovat pomocí následujícího příkazu:

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

Jakmile jsou všechny balíčky nainstalovány, upravte soubor php.ini a dolaďte některé změny:

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

Změňte následující řádky:

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

Uložte a zavřete soubor a poté restartujte PHP-FPM, aby se změny projevily:

systemctl restart php7.4-fpm

Krok 4:Vytvoření databáze Drupal

Dále budete muset vytvořit databázi a uživatele pro obě instance Drupal.

Nejprve se připojte k MySQL pomocí následujícího příkazu:

mysql

Po připojení vytvořte databázi pro obě instance Drupal pomocí následujícího příkazu:

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

Dále vytvořte uživatele databáze pro obě instance Drupal pomocí následujícího příkazu:

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

Dále udělte všechna oprávnění oběma databázím Drupal pomocí následujícího příkazu:

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';

Dále vyprázdněte oprávnění a ukončete MySQL pomocí následujícího příkazu:

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

Jakmile budete hotovi, můžete přejít k dalšímu kroku.

Krok 5:Stáhněte si Drupal

Dále si budete muset stáhnout nejnovější verzi Drupalu z jeho oficiálních stránek.

Nejprve změňte adresář na webový kořenový adresář Nginx pomocí následujícího příkazu:

cd /var/www/html

Dále si stáhněte nejnovější verzi Drupalu pomocí následujícího příkazu:

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

Dále rozbalte stažený soubor pomocí následujícího příkazu:

tar -xf drupal-latest.tar.gz

Dále zkopírujte extrahovaný adresář do drupal1 a drupal2:

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

Dále nastavte správné vlastnictví pomocí následujícího příkazu:

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

Jakmile budete hotovi, můžete přejít k dalšímu kroku.

Krok 6:Konfigurace Nginx

Dále budete muset vytvořit dva konfigurační soubory virtuálního hostitele Nginx pro každou instanci Drupal.

Nejprve vytvořte konfigurační soubor virtuálního hostitele Nginx pro první instanci Drupal:

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

Přidejte následující řádky:

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;
        }
}

Po dokončení uložte a zavřete soubor.

Dále vytvořte konfigurační soubor virtuálního hostitele Nginx pro druhou instanci Drupal:

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

Přidejte následující řádky:

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;
        }
}

Po dokončení uložte a zavřete soubor a poté ověřte, zda Nginx neobsahuje nějakou chybu syntaxe pomocí následujícího příkazu:

nginx -t

Měli byste vidět následující výstup:

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

Poté restartujte službu Nginx, aby se změny aplikovaly:

systemctl restart nginx

Stav Nginx můžete také zkontrolovat pomocí následujícího příkazu:

systemctl status nginx

Měli byste získat následující výstup:

? 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.

Krok 7:Přístup k Drupal

Nyní otevřete webový prohlížeč a zadejte adresu URL http://drupal1.example.com nebo http://drupal2.example.com . Budete přesměrováni na průvodce webovou instalací Drupal, jak je znázorněno níže:

Vyberte svůj jazyk a klikněte na Uložit a pokračovat knoflík. Měli byste vidět následující stránku:

Vyberte standardní typ instalace a klikněte na tlačítko Uložit a pokračovat knoflík. Měli byste vidět následující stránku:

Zadejte podrobnosti o databázi a klikněte na Uložit a pokračovat knoflík. Měli byste vidět následující stránku:

Zadejte informace o svém webu a klikněte na Uložit a pokračovat knoflík. Na následující stránce byste měli vidět řídicí panel Drupal:

Závěr

Ve výše uvedeném příspěvku jste se naučili, jak nasadit více instancí Drupal s Nginx na serveru Ubuntu 20.04. Nyní můžete na svůj server nasadit libovolný počet instancí Drupalu. Pro každou novou instanci Drupalu stačí definovat název domény a instalační cestu Drupalu. Pokud máte nějaké dotazy, neváhejte se mě zeptat.


Ubuntu
  1. Jak nainstalovat Nextcloud s Nginx na Ubuntu 18.04 LTS

  2. Jak nainstalovat Seafile s Nginx na Ubuntu 20.04 LTS

  3. Nainstalujte Nextcloud s Nginx na Ubuntu 20.04 LTS - Průvodce krok za krokem?

  1. Jak nainstalovat SuiteCRM s Nginx na Ubuntu 16.04

  2. Jak nainstalovat Magento 2 s Nginx a Letsencrypt na Ubuntu 18.04

  3. Jak nainstalovat Drupal 8 s Nginx, PHP-FPM a SSL na Ubuntu 15.10

  1. Jak nainstalovat Magento s Nginx na Ubuntu 16.04

  2. Jak nainstalovat OroCRM s Nginx na Ubuntu 16.04 LTS

  3. Jak nainstalovat Laravel 5.6 PHP Framework s Nginx na Ubuntu 18.04