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.