Ricerca nel sito web

Installa più istanze Drupal con Nginx su Ubuntu 20.04


Su questa pagina

  1. Prerequisiti
  2. Passaggio 1: installa le dipendenze richieste
  3. Passaggio 2: installa Nginx e MariaDB
  4. Passaggio 3: installa PHP 7.4
  5. Passaggio 4: crea il database Drupal
  6. Passaggio 5: Scarica Drupal
  7. Passaggio 6: configura Nginx
  8. Passaggio 7: accedi a Drupal
  9. Conclusione

Drupal è una piattaforma gratuita, scalabile e aperta utilizzata per creare e gestire i contenuti dei siti 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 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 con l'IP del tuo server.
  • Sul server è configurata una password di root.

Passaggio 1: installare le dipendenze richieste

Innanzitutto, dovrai aggiornare i tuoi 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.

Passaggio 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

Successivamente, 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.

Passaggio 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 apporta 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

Passaggio 4: creare 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;

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

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

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

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

Successivamente, scarica 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.

Passaggio 5: scarica Drupal

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

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

cd /var/www/html

Successivamente, 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 estrata 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: configurare Nginx

Successivamente, dovrai creare due file di configurazione dell'host virtuale Nginx per ogni 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.

Successivamente, 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 quando hai finito, 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

Successivamente, 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 ubunt4 systemd[1]: Starting A high performance web server and a reverse proxy server...
Mar 23 08:50:47 ubunt4 systemd[1]: Started A high performance web server and a reverse proxy server.

Passaggio 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 lingua e fai clic sul pulsante Salva e continua. Dovresti vedere la seguente pagina:

Selezionare il tipo di installazione standard e fare clic sul pulsante Salva e continua. Dovresti vedere la seguente pagina:

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

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

Conclusione

Nel post sopra, 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. Non esitate a chiedermi se avete domande.