GNU/Linux >> Linux Esercitazione >  >> Debian

Come installare Drupal 9 con Nginx e Lets Encrypt SSL su Debian 10

Drupal è un noto sistema di gestione dei contenuti open source basato su PHP. È disponibile gratuitamente e rilasciato sotto la GNU General Public License. Drupal può essere utilizzato per siti Web di tutte le dimensioni, da grandi siti Web internazionali a blog personali e siti aziendali o governativi.

La parte centrale di drupal si chiama "Drupal Core", contiene il sistema di gestione dei contenuti di base, la gestione degli utenti, la gestione dei menu, la personalizzazione del layout e l'amministrazione del sistema. Drupal Core può essere esteso tramite plugin, fino ad ora la comunità drupal ha fornito più di 31.000 moduli per Drupal.

In questo tutorial, ti mostreremo come installare Drupal 9 su Debian Buster 10. Eseguiremo Drupal sotto lo stack LEMP (Linux, Nginx, MySQL/MariaDB e PHP-FPM) e proteggeremo l'installazione usando SSL Letsencrypt .

Prerequisiti

Per questa guida, testeremo la nostra installazione di Drupal sull'ultima versione di Debian Buster 10 con 2 GB di RAM, 50 GB di spazio libero su disco e 2 CPU. Inoltre, abbiamo bisogno dei privilegi di root sudo per installare nuovi pacchetti e modificare alcune configurazioni del software di sistema.

Cosa faremo?

  • Installa il server web Nginx
  • Installa e configura PHP-FPM
  • Installa e configura MariaDB
  • Genera SSL Letsencrypt
  • Imposta Nginx Virtualhost per Drupal 9
  • Scarica il codice sorgente di Drupal 9
  • Drupal 9 Post installazione

Passaggio 1:installazione del server Web Nginx

Per prima cosa, installeremo il server web Nginx sul nostro server Debian.

Aggiorna i repository disponibili sul tuo sistema e aggiorna tutti i pacchetti all'ultima versione utilizzando il comando apt di seguito.

sudo apt update
sudo apt upgrade

Quindi, installa i pacchetti del server web Nginx usando il comando seguente.

sudo apt install nginx -y

Una volta completata l'installazione, avvia il servizio Nginx e aggiungilo all'avvio del sistema.

systemctl start nginx
systemctl enable nginx

Il servizio Nginx è attivo e funzionante, verificalo utilizzando il comando seguente.

systemctl status nginx

Di seguito è riportato il risultato che otterrai.

Di conseguenza, il servizio Nginx è attivo e funzionante su Debian Buster 10.

Fase 2 - Installa e configura PHP-FPM

In questo passaggio, installeremo e configureremo PHP-FPM 7.3 su Debian 10 per la nostra installazione di Drupal.

Installa i pacchetti PHP e PHP-FPM 7.3 usando il comando apt di seguito.

sudo apt install php php-fpm php-gd php-common php-mysql php-apcu php-gmp php-curl php-intl php-mbstring php-xmlrpc php-gd php-xml php-cli php-zip -y

Al termine dell'installazione, vai nella directory '/etc/php/7.3' e modifica la configurazione 'php.ini' usando l'editor vim.

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

Decommenta e modifica la configurazione dei dettagli come di seguito.

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

Salva e chiudi.

Quindi, riavvia il servizio PHP-FPM e aggiungilo all'avvio del sistema.

systemctl restart php7.3-fpm
systemctl enable php7.3-fpm

Il servizio PHP-FPM è attivo e funzionante e, per impostazione predefinita, è in esecuzione nel file sock

Controlla il servizio PHP-FPM usando il seguente comando.

ss -plnt | grep php
systemctl status php7.3-fpm

Di seguito è riportato il risultato che otterrai.

Di conseguenza, l'installazione e la configurazione di PHP-FPM per Drupal 9 su Debian Buster 10 sono state completate.

Passaggio 3:installazione e configurazione del server MariaDB

Dopo aver installato i pacchetti PHP e PHP-FPM, installeremo il database MariaDB e creeremo un nuovo database per Drupal 9.

Installa i pacchetti MariaDB usando il comando apt di seguito.

sudo apt install mariadb-server mariadb-client

Successivamente, avvia il servizio MariaDB e aggiungilo all'avvio del sistema.

systemctl start mysql
systemctl enable mysql

Di conseguenza, il database MariaDB è stato installato sul server Debian.

Successivamente, imposteremo la password per l'utente root MariaDB predefinito utilizzando il comando 'mysql_secure_installation' come di seguito.

mysql_secure_installation

Digita la password per la root predefinita e digita 'Y ' per tutte le opzioni.

Enter current password for root (enter for none): 
OK, successfully used password, moving on...

Set a root password? [Y/n] Y
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

E la password di root di MariaDB è stata configurata.

Successivamente, dobbiamo accedere alla shell MySQL e creare un nuovo database e un nuovo utente per la nostra installazione di Drupal.

Accedi alla shell MySQL con l'utente root predefinito e la tua password come di seguito.

mysql -u root -p

Crea un nuovo database denominato "drupaldb" e l'utente "drupaluser" con la password "[email protected]" utilizzando le query MySQL di seguito.

create database drupaldb;
create user [email protected] identified by '[email protected]';
grant all privileges on drupaldb.* to [email protected] identified by '[email protected]';
flush privileges;

Digita 'uscita ' o premi 'Ctrl+d ' per uscire dalla shell MySQL.

Di conseguenza, è stato creato il nuovo database e utente per l'installazione di Drupal.

Fase 4:genera SSL Letsencrypt

Per questo tutorial, proteggeremo l'installazione di Drupal 9 utilizzando SSL Letsencrypt. Quindi assicurati di avere il nome di dominio che è stato risolto con l'indirizzo IP del tuo server.

Per utilizzare SSL Letsencrypt, dobbiamo generare certificati SSL con lo strumento certbot.

Installa lo strumento certbot utilizzando il comando apt di seguito.

sudo apt install certbot -y

Successivamente, interrompi il servizio Nginx e genera SSL Letsencrypt per il tuo nome di dominio Drupal utilizzando il seguente comando.

systemctl stop nginx
certbot certonly --rsa-key-size 2048 --standalone --agree-tos --no-eff-email --email [email protected] -d drupal.hakase-labs.io

Assicurati di cambiare l'indirizzo email con il tuo. Una volta completato tutto, i tuoi certificati SSL saranno disponibili nella directory '/etc/letsencrypt/live/tuodominio.com'.

Passaggio 6:configurazione di Nginx Virtualhost per Drupal 9

In questo passaggio creeremo una nuova configurazione di host virtuale Nginx per Drupal.

Vai alla directory etc/nginx/sites-available e crea una nuova configurazione di host virtuale 'drupal9' usando l'editor vim.

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

Cambia il nome di dominio e il percorso dei certificati SSL Letsencrypt con il tuo, incollalo.

server {
    server_name drupal.hakase-labs.io;
    root /var/www/drupal9; ## <-- Your only path reference.

    listen 80;
    listen [::]:80;
    listen 443 default ssl;

    ssl_certificate      /etc/letsencrypt/live/drupal.hakase-labs.io/fullchain.pem;
    ssl_certificate_key  /etc/letsencrypt/live/drupal.hakase-labs.io/privkey.pem;

    # Redirect HTTP to HTTPS
    if ($scheme = http) {
        return 301 https://$server_name$request_uri;
    }

    location = /favicon.ico {
        log_not_found off;
        access_log off;
    }

    location = /robots.txt {
        allow all;
        log_not_found off;
        access_log off;
    }

    # Very rarely should these ever be accessed outside of your lan
    location ~* \.(txt|log)$ {
        allow 192.168.0.0/16;
        deny all;
    }

    location ~ \..*/.*\.php$ {
        return 403;
    }

    location ~ ^/sites/.*/private/ {
        return 403;
    }

    # Block access to "hidden" files and directories whose names begin with a
    # period. This includes directories used by version control systems such
    # as Subversion or Git to store control files.
    location ~ (^|/)\. {
        return 403;
    }

    location / {
        # try_files $uri @rewrite; # For Drupal <= 6
        try_files $uri /index.php?$query_string; # For Drupal >= 7
    }

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

    # In Drupal 8, we must also match new paths where the '.php' appears in the middle,
    # such as update.php/selection. The rule we use is strict, and only allows this pattern
    # with the update.php front controller.  This allows legacy path aliases in the form of
    # blog/index.php/legacy-path to continue to route to Drupal nodes. If you do not have
    # any paths like that, then you might prefer to use a laxer rule, such as:
    #   location ~ \.php(/|$) {
    # The laxer rule will continue to work if Drupal uses this new URL pattern with front
    # controllers other than update.php in a future release.
    location ~ '\.php$|^/update.php' {
        fastcgi_split_path_info ^(.+?\.php)(|/.*)$;
        #NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
        include fastcgi_params;
        include snippets/fastcgi-php.conf;
        fastcgi_param SCRIPT_FILENAME $request_filename;
        fastcgi_intercept_errors on;
        fastcgi_pass unix:/run/php/php7.3-fpm.sock;
    }

    # Fighting with Styles? This little gem is amazing.
    # location ~ ^/sites/.*/files/imagecache/ { # For Drupal <= 6
    location ~ ^/sites/.*/files/styles/ { # For Drpal >= 7
        try_files $uri @rewrite;
    }

    location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
        expires max;
        log_not_found off;
    }
}

Salva e chiudi.

Quindi, attiva la configurazione dell'host virtuale Nginx per Drupal.

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

Ora prova la configurazione di Nginx e assicurati che non ci siano errori, quindi riavvia il servizio Nginx.

nginx -t
systemctl restart nginx

Di conseguenza, la configurazione dell'host virtuale Nginx per Drupal è stata completata.

Passaggio 6 - Scarica Drupal

In questo passaggio, scaricheremo e installeremo l'ultima versione di Drupal 9 nella directory '/var/www'.

Ora vai nella directory '/var/www' e scarica il codice sorgente di Drupal usando il comando wget come di seguito.

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

Estrarre il codice sorgente drupal e rinominare la directory in 'drupal9'.

tar -xf drupal-latest.tar.gz
mv drupal-9*/ drupal9/

Successivamente, cambia la proprietà della directory di installazione di Drupal nell'utente 'www-data'.

chown -R www-data:www-data /var/www/drupal9

Di conseguenza, la directory di installazione di Drupal si trova nella directory '/var/www/drupal9'.

Fase 7 - Installazione Drupal Post

Apri il tuo browser web e digita l'URL di installazione di Drupal nella barra degli indirizzi.

https://drupal.hakase-labs.io/

E verrai reindirizzato alla connessione HTTPS sicura.

Ora scegli la lingua predefinita per la tua installazione di Drupal. La lingua predefinita è "inglese '.

Scegli come lingua preferita e fai clic su 'Salva e continua pulsante '.

Seleziona il tuo profilo di installazione Drupal e fai clic su 'Salva e continua '. Se è la prima volta che installi Drupal, scegli lo 'Standard ' profilo di installazione.

Per le configurazioni del database MySQL, digita il database dei dettagli creato in alto e fai clic su 'Salva e continua pulsante '.

E otterrai il processo di installazione di Drupal come di seguito.

Una volta completata l'installazione, configura il nome del sito, l'utente amministratore, la password, l'e-mail, ecc.

Fai clic su 'Salva e continua pulsante '.

Ora verrai reindirizzato alla pagina dell'indice predefinita di Drupal come di seguito.

Fai clic su "Configurazione ' in alto e otterrai la dashboard di configurazione di Drupal Admin.

Di conseguenza, l'installazione di Drupal 9 con lo stack LEMP su Debian Buster 10 è stata completata con successo.


Debian
  1. Come installare Nextcloud con Nginx e Lets Encrypt SSL su Ubuntu 20.04 LTS

  2. Installa Lets Encrypt e Secure Nginx con SSL/TLS in Debian 9

  3. Installa Automad CMS con Nginx e Lets Encrypt SSL su Debian 10

  4. Come installare OpenCart con Nginx e Lets Encrypt su Debian 10

  5. Come installare Drupal con Nginx e Lets Encrypt SSL su Ubuntu 20.04 LTS

Come installare Lighttpd con PHP, MariaDB e Lets Encrypt SSL su Debian 10

Come installare MyBB Forum con Nginx e Lets Encrypt su Debian 10

Come installare Wekan Kanban con Nginx e Lets Encrypt SSL su Debian 10

Come installare Drupal con Nginx e Let's Encrypt SSL su Debian 11

Come installare Joomla con Nginx e Let's Encrypt SSL su Debian 11

Come installare WordPress con Nginx e Let's Encrypt SSL su Debian 11