GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Installa più istanze Drupal con Nginx su Ubuntu 20.04

Drupal è una piattaforma gratuita, scalabile e aperta utilizzata per creare e gestire i contenuti del sito web. Ha una vasta comunità ed è utilizzato da milioni di persone e organizzazioni in tutto il mondo. Drupal fornisce un'interfaccia Web semplice e intuitiva che ti aiuta a creare una varietà di siti Web che vanno dai siti Web personali ai siti Web di grandi dimensioni guidati dalla comunità.

In questa guida, ti mostreremo come distribuire più istanze Drupal con Nginx su Ubuntu 20.04.

Prerequisiti

  • Un server che esegue Ubuntu 20.04.
  • Due nomi di dominio validi puntati all'IP del tuo server.
  • Sul server è configurata una password di root.

Passaggio 1:installa le dipendenze richieste

Innanzitutto, dovrai aggiornare i pacchetti di sistema alla versione aggiornata e installare le dipendenze richieste sul tuo sistema. Puoi farlo con il seguente comando:

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

Una volta installate tutte le dipendenze, puoi procedere al passaggio successivo.

Fase 2:installa Nginx e MariaDB

Qui ospiteremo Drupal con Nginx. Quindi Nginx deve essere installato nel tuo server. Se non è installato, puoi installarlo con il seguente comando:

apt-get install nginx -y

Dopo aver installato Nginx, dovrai installare l'ultima versione di MariaDB sul tuo server. Per impostazione predefinita, l'ultima versione di MariaDB non è inclusa nel repository predefinito di Ubuntu 20.04. Quindi dovrai aggiungere il repository MariaDB ad APT.

Innanzitutto, aggiungi la chiave GPG con il seguente comando:

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

Quindi, aggiungi il repository MariaDB con il seguente comando:

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

Una volta aggiunto il repository, aggiorna il repository e installa l'ultima versione di MariaDB con il seguente comando:

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

Una volta installato il server MariaDB, puoi procedere al passaggio successivo.

Fase 3:installa PHP 7.4

Drupal non supporta PHP 8.0. Quindi dovrai installare PHP 7.4 nel tuo sistema. Puoi installare PHP versione 7.4 con altre estensioni richieste con il seguente comando:

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

Una volta installati tutti i pacchetti, modifica il file php.ini e modifica alcune modifiche:

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

Modifica le seguenti righe:

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

Salva e chiudi il file, quindi riavvia PHP-FPM per applicare le modifiche:

systemctl restart php7.4-fpm

Fase 4:crea un database Drupal

Successivamente, dovrai creare un database e un utente per entrambe le istanze Drupal.

Innanzitutto, connettiti a MySQL con il seguente comando:

mysql

Una volta connesso, crea un database per entrambe le istanze Drupal con il seguente comando:

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

Quindi, crea un utente del database per entrambe le istanze Drupal con il seguente comando:

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

Quindi, concedi tutti i privilegi a entrambi i database Drupal con il seguente comando:

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

Quindi, svuota i privilegi ed esci da MySQL con il seguente comando:

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

Una volta terminato, puoi procedere al passaggio successivo.

Fase 5:scarica Drupal

Successivamente, dovrai scaricare l'ultima versione di Drupal dal suo sito Web ufficiale.

Innanzitutto, cambia la directory in Nginx web root con il seguente comando:

cd /var/www/html

Quindi, scarica l'ultima versione di Drupal con il seguente comando:

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

Quindi, estrai il file scaricato con il seguente comando:

tar -xf drupal-latest.tar.gz

Quindi, copia la directory estratta in drupal1 e drupal2:

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

Quindi, imposta la proprietà corretta con il seguente comando:

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

Una volta terminato, puoi procedere al passaggio successivo.

Passaggio 6:configura Nginx

Successivamente, dovrai creare due file di configurazione dell'host virtuale Nginx per ciascuna istanza Drupal.

Innanzitutto, crea un file di configurazione dell'host virtuale Nginx per la prima istanza Drupal:

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

Aggiungi le seguenti righe:

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

Salva e chiudi il file quando hai finito.

Quindi, crea un file di configurazione dell'host virtuale Nginx per la seconda istanza Drupal:

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

Aggiungi le seguenti righe:

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

Salva e chiudi il file al termine, quindi verifica Nginx per eventuali errori di sintassi con il seguente comando:

nginx -t

Dovresti vedere il seguente output:

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

Quindi, riavvia il servizio Nginx per applicare le modifiche:

systemctl restart nginx

Puoi anche controllare lo stato di Nginx con il seguente comando:

systemctl status nginx

Dovresti ottenere il seguente output:

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

Fase 7:accedi a Drupal

Ora apri il tuo browser web e digita l'URL http://drupal1.example.com o http://drupal2.example.com . Verrai reindirizzato alla procedura guidata di installazione Web di Drupal come mostrato di seguito:

Seleziona la tua lingua e fai clic su Salva e continua pulsante. Dovresti vedere la seguente pagina:

Seleziona il tipo di installazione standard e fai clic su Salva e continua pulsante. Dovresti vedere la seguente pagina:

Fornisci i dettagli del tuo database e fai clic su Salva e continua pulsante. Dovresti vedere la seguente pagina:

Fornisci le informazioni sul tuo sito e fai clic su Salva e continua pulsante. Dovresti vedere la dashboard di Drupal nella pagina seguente:

Conclusione

Nel post precedente, hai imparato come distribuire più istanze Drupal con Nginx sul server Ubuntu 20.04. Ora puoi distribuire qualsiasi numero di istanze Drupal sul tuo server. Devi solo definire il nome di dominio e il percorso di installazione di Drupal per ogni nuova istanza di Drupal. Sentiti libero di chiedermi se hai domande.


Ubuntu
  1. Come installare Nextcloud con Nginx su Ubuntu 18.04 LTS

  2. Come installare Seafile con Nginx su Ubuntu 20.04 LTS

  3. Come installare SuiteCRM con Nginx su Ubuntu 16.04

  4. Come installare Magento 2 con Nginx e Letsencrypt su Ubuntu 18.04

  5. Installa Nextcloud con Nginx su Ubuntu 20.04 LTS - Guida passo passo?

Come installare più WordPress con Nginx su Ubuntu 18.04

Installa WordPress su Ubuntu 20.04 con Apache, MariaDB, PHP7.4 (LAMP)

Installa WordPress su Ubuntu 20.04 con Nginx, MariaDB, PHP7.4 (LEMP)

Come installare WordPress 4.7 su Ubuntu 16.04 con Apache, MariaDB, PHP7

Installa WordPress su Ubuntu 18.04 con Nginx, MariaDB, PHP7.2 (LEMP)

Come installare lo stack LEMP (Nginx, MariaDB, PHP7.1) su Ubuntu 17.10