Drupal Installazione · 13 min read · Oct 13, 2025
Come installare Drupal CMS con Nginx su Rocky Linux 8

Drupal è un sistema di gestione dei contenuti web gratuito e open-source scritto in PHP e distribuito sotto la GNU General Public License. Drupal fornisce uno strumento di gestione dei contenuti robusto con API sofisticate per la pubblicazione multicanale.
Drupal è uno dei CMS più utilizzati su Internet, utilizzato da almeno il 14% dei primi 10.000 siti web su Internet, ed è utilizzato per industrie globali, governi, istruzione e siti di istituzioni. Drupal fornisce un sistema altamente scalabile, integrato con applicazioni digitali, e può essere utilizzato per creare multisiti per diverse organizzazioni con supporto multilingue.
In questo tutorial, imparerai come configurare il CMS Drupal (Content Management System) con il LEMP Stack sul server Rocky Linux. Imparerai anche come far funzionare Drupal su Rocky Linux con SELinux in modalità enforcing e Firewalld abilitato.
Prerequisiti
Per iniziare con questa guida, avrai bisogno dei seguenti requisiti:
- Un server Rocky Linux - Questo esempio utilizza Rocky Linux 8.x con il nome host ‘drupal-server‘.
- Un utente non root con privilegi di amministratore sudo/root.
- Un nome di dominio puntato all’indirizzo IP del server Rocky Linux - specialmente quando sei in ambiente di produzione.
Configurazione dei Repository
Il LEMP Stack (Nginx, MariaDB/MySQL e PHP-FPM) è un gruppo di software open-source per l’hosting di applicazioni web. Su Rocky Linux, la maggior parte dei pacchetti del LEMP Stack è disponibile su repository di terze parti.
Nel primo passaggio, aggiungerai e abiliterai due repository sul tuo sistema. Aggiungerai il repository EPEL che fornisce pacchetti aggiuntivi per i sistemi operativi basati su RHEL, e il repository REMI che fornisce più versioni di pacchetti PHP.
Esegui il seguente comando per aggiungere il repository EPEL al tuo sistema Rocky Linux. Quando richiesto per conferma, inserisci y e premi INVIO.
sudo dnf install epel-release
Ora esegui il comando dnf qui sotto per aggiungere il repository REMI per Rocky Linux 8.4.
sudo dnf install dnf-utils http://rpms.remirepo.net/enterprise/remi-release-8.rpmInserisci y e premi INVIO per procedere e aggiungere il repository Remi.

Infine, esegui il comando dnf qui sotto per verificare l’elenco dei repository disponibili sul tuo sistema. Dovresti vedere due repository aggiuntivi EPEL e REMI aggiunti al sistema Rocky Linux.
sudo dnf repolist
Installazione delle Dipendenze dei Pacchetti
Drupal è un CMS flessibile e potente che può essere installato con qualsiasi server web come Apache2/httpd, Nginx o IIS Microsoft. Inoltre, Drupal supporta più RDBMS tra cui MariaDB/MySQL, PostgreSQL e SQLite. Per altri database come Microsoft SQL Server e MongoDB, puoi utilizzare entrambi tramite moduli della comunità.
Ora installerai le dipendenze dei pacchetti del LEMP Stack per Drupal. Installerai Nginx tramite il repository EPEL, installerai MariaDB dall’appstream e i pacchetti PHP 8.1 dal repository REMI.
Per prima cosa, ripristina e abilita il modulo PHP dal repository REMI tramite il comando dnf qui sotto. In questo esempio, abiliterai un modulo per PHP 8.1, che è supportato dall’ultima versione di Drupal.
sudo dnf module reset php
sudo dnf module enable php:remi-8.1Quando richiesto, inserisci y per confermare e abilitare il repository PHP 8.1 REMI e premi INVIO per procedere.

Successivamente, utilizza il comando dnf qui sotto per installare i pacchetti di base del LEMP stack.
sudo dnf install nginx mariadb-server php php-fpm php-cli php-devel php-mbstring php-gd php-xml php-curl php-mysqlnd php-pdo php-json php-opcache php-pear php-pecl-apcu php-pecl-cryptoInserisci y e premi INVIO quando richiesto per conferma.

Inoltre, inserisci y quando richiesto per confermare l’aggiunta della chiave GPG per alcuni repository.

Una volta installati i pacchetti del LEMP Stack, puoi utilizzare il seguente comando systemctl per avviare i servizi Nginx, MariaDB e PHP-FPM. Inoltre, abiliterai tutti questi servizi per essere eseguiti automaticamente all’avvio.
sudo systemctl start nginx mariadb php-fpm
sudo systemctl enable nginx mariadb php-fpmOra vedrai un output simile al seguente - il LEMP Stack dovrebbe ora essere in esecuzione sul tuo sistema Rocky Linux e tutti i servizi per il LEMP Stack sono abilitati.

Configurazione di Firewalld
Firewalld è il firewall predefinito sui sistemi operativi basati su RHEL, incluso Rocky Linux. Eseguire Drupal o qualsiasi applicazione web con un firewall abilitato è consigliato, specialmente in un ambiente di livello di produzione.
Ora aggiungerai entrambe le porte HTTP e HTTPS al firewalld per consentire ai client di accedere alla tua installazione di Drupal.
Esegui il seguente comando firewall-cmd qui sotto per aggiungere i servizi HTTP e HTTPS al firewalld.
sudo firewall-cmd --add-service=http --permanent
sudo firewall-cmd --add-service=https --permanentOra ricarica il firewalld per applicare le nuove modifiche. Quindi, verifica l’elenco dei servizi abilitati sul firewalld.
sudo firewall-cmd --reload
sudo firewall-cmd --list-servicesDovresti ottenere i servizi HTTP e HTTPS aggiunti al firewalld.

Configurazione del Server MariaDB
In questo passaggio, inizierai a configurare il database MariaDB che sarà utilizzato per Drupal. Inizierai proteggendo il deployment di MariaDB, quindi creerai un nuovo database e un utente per l’installazione di Drupal.
Prima di iniziare, esegui il seguente comando per verificare il servizio MariaDB e assicurati che il servizio sia in esecuzione.
sudo systemctl status mariadbDi seguito è riportato l’output quando il servizio MariaDB è in esecuzione.

Successivamente, esegui il seguente comando per proteggere il deployment del server MariaDB. Questa riga di comando ‘mysql_secure_installation‘ è fornita dai pacchetti MariaDB che ti aiutano a proteggere l’installazione.
sudo mysql_secure_installationOra ti verranno poste alcune domande relative alle configurazioni del server MariaDB:
- L’installazione predefinita di MariaDB viene fornita senza una password, premi INVIO quando richiesto per la password.
- Ora inserisci Y per impostare la password di root di MariaDB. Quindi, digita la nuova password per MariaDB e ripeti la password.
- Inserisci Y per rimuovere l’utente anonimo dalla tua installazione di MariaDB.
- Inserisci Y di nuovo quando richiesto per disabilitare il login remoto per l’utente root di MariaDB.
- Inserisci Y per rimuovere il database di test predefinito dalla tua MariaDB.
- Infine, inserisci Y per ricaricare i privilegi delle tabelle e applicare le nuove modifiche.
Dopo aver protetto il deployment di MariaDB, configurerai un nuovo database e un utente per Drupal.
Accedi alla shell MySQL/MariaDB tramite l’utente root con il comando mysql qui sotto.
sudo mysql -u root -pEsegui le seguenti query per creare un nuovo database e un utente per Drupal. In questo esempio, creerai il database drupaldb con l’utente drupal@localhost. Assicurati anche di cambiare la password predefinita del database.
CREATE DATABASE drupaldb;
CREATE USER drupal@localhost IDENTIFIED BY 'password';
GRANT ALL ON drupaldb.* TO drupal@localhost WITH GRANT OPTION;
FLUSH PRIVILEGES;
Successivamente, esegui le seguenti query per verificare i privilegi per l’utente MariaDB drupal@localhost. Vedrai che l’utente MariaDB drupal@localhost ha accesso e privilegi al database drupaldb.
SHOW GRANTS FOR drupal@localhost;Ora esegui la query ‘exit‘ o ‘quit‘ per disconnetterti dalla shell di MariaDB.

Installazione dell’Estensione PECL: uploadprogress
L’uploadprogress è un’estensione che sarà utilizzata da Drupal per mostrare una barra di progresso. L’uploadprogress può essere installato tramite il repository PECL (PHP Extension Community Library).
Ora installerai l’estensione uploadprogress dal repository PECL e la abiliterai sulla tua installazione di PHP.
Per iniziare, esegui il seguente comando per assicurarti che il comando ‘pecl‘ sia disponibile sul tuo sistema. Se ‘pecl‘ è disponibile, dovresti vedere il percorso completo del file binario ‘pecl‘.
which peclOra esegui il comando ‘pecl‘ qui sotto per installare l’estensione uploadprogress.
sudo pecl install uploadprogressQuando inizia l’installazione, dovresti vedere un output simile al seguente:

Successivamente, esegui il seguente comando per creare un nuovo file di configurazione ‘/etc/php.d/uploadprogress.ini‘, e abilitare l’estensione uploadprogress.
cat <Infine, riavvia il servizio PHP-FPM per applicare le nuove modifiche. Il PHP-FPM ora è in esecuzione con l’estensione aggiuntiva uploadprogress abilitata.
sudo systemctl restart php-fpm
Configurazione di PHP-FPM
Ora configurerai la configurazione di base di PHP-FPM tramite il file ‘/etc/php.ini‘ e configurerai un pool PHP-FPM specifico per Drupal.
Modifica il file ‘/etc/php.ini‘ utilizzando il seguente editor nano.
sudo nano /etc/php.iniCambia la configurazione predefinita come segue. Assicurati anche di cambiare l’opzione date.timezone con il tuo ambiente.
memory_limit = 512M
upload_max_filesize = 60M
max_execution_time = 300
date.timezone = Europe/StockholmSalva il file ed esci dall’editor quando hai finito.
Successivamente, copia la configurazione predefinita del pool PHP-FPM ‘/etc/php-fpm.d/www.conf‘ in ‘‘/etc/php-fpm.d/drupal.conf’. Quindi, modifica la nuova configurazione del pool ‘/etc/php-fpm.d/drupal.conf‘ utilizzando l’editor nano.
sudo cp /etc/php-fpm.d/www.conf /etc/php-fpm.d/drupal.conf
sudo nano /etc/php-fpm.d/drupal.confCambia il nome predefinito in ‘[drupal]‘ e l’utente e il gruppo predefiniti in ‘nginx‘. Assicurati anche di cambiare il file sock di ascolto per il pool PHP-FPM ‘drupal’ in ‘/run/php-fpm/drupal.sock’.
[drupal]
user = nginx
group = nginx
listen.owner = nginx
listen.group = nginx
listen = /run/php-fpm/drupal.sockSalva il file ed esci dall’editor quando hai finito.
Ora riavvia il servizio PHP-FPM tramite il comando systemctl qui sotto. Quindi, verifica lo stato del servizio PHP-FPM.
sudo systemctl restart php-fpm
sudo systemctl status php-fpmDovresti ricevere un output simile al seguente - Il servizio PHP-FPM è in esecuzione.

Successivamente, esegui il seguente comando per creare un nuovo file PHPINFO ‘/usr/share/nginx/html/info.php‘.
cat <
EOF Infine, apri il browser web e visita l’indirizzo IP del server seguito dal percorso ‘/info.php’ (ad es: http://192.168.5.100/info.php). Dovresti ottenere informazioni dettagliate su PHP

Download del Codice Sorgente di Drupal
A questo punto, hai terminato la configurazione del server di database MariaDB e di PHP-FPM per l’installazione di Drupal. Ora scaricherai l’ultima versione di Drupal sul tuo server.
Per prima cosa, sposta la directory di lavoro corrente in ‘/tmp’ e scarica l’ultima versione di Drupal tramite il comando wget come di seguito. Dovresti vedere il file ‘drupal.tar.gz‘ dopo che il processo di download è terminato.
cd /tmp
wget https://www.drupal.org/download-latest/tar.gz -O drupal.tar.gzSuccessivamente, estrai il file ‘drupal.tar.gz‘ utilizzando il comando tar e sposta la directory estratta in ‘/var/www/drupal‘, che sarà utilizzata come installazione per Drupal.
tar -xvf drupal.tar.gz
mv drupal-* /var/www/drupalInfine, esegui il seguente comando per cambiare la proprietà e i permessi della directory di installazione di Drupal ‘/var/www/drupal‘. La proprietà dovrebbe essere l’utente e il gruppo ‘nginx‘, in modo che il server web Nginx possa leggere e accedere al codice sorgente di Drupal. E per i permessi, dovrebbe essere ‘755‘.
sudo chown -R nginx:nginx /var/www/drupal/
sudo chmod -R 755 /var/www/drupal/Configurazione di SELinux
Dopo aver scaricato il codice sorgente di Drupal, configurerai SELinux per Drupal. Scaricherai lo strumento di gestione SELinux sul tuo server e configurerai l’etichettatura per il codice sorgente di Drupal e regole aggiuntive per Nginx.
Esegui il comando dnf qui sotto per installare il pacchetto ‘policycoreutils-python-utils‘ per gestire SELinux sul tuo sistema.
sudo dnf install policycoreutils-python-utilsQuando richiesto, inserisci y per confermare l’installazione e premi INVIO per procedere.

Successivamente, esegui il seguente comando per impostare l’etichettatura per il codice sorgente di Drupal.
sudo semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/drupal(/.*)?"
sudo semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/drupal/sites/default/settings.php'
sudo semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/drupal/sites/default/files'
sudo restorecon -Rv /var/www/drupalEsegui il seguente comando per consentire al server web Nginx di accedere a determinati servizi. Per l’installazione di Drupal, dovresti consentire a Nginx di accedere ai servizi di rete e di posta.
sudo setsebool -P httpd_can_sendmail on
sudo setsebool -P httpd_can_network_connect onOra che hai scaricato il codice sorgente di Drupal e configurato la corretta proprietà per l’utente e il gruppo ‘nginx‘, configurato i permessi corretti a 755, e configurato SELinux per Drupal.
Configurazione del Server Web Nginx
Ora che hai terminato alcune configurazioni del server di database MariaDB e di PHP-FPM. Inoltre, hai scaricato il codice sorgente di Drupal e configurato SELinux. Nel passaggio successivo, configurerai i blocchi del server Nginx per il tuo dominio.
Prima di iniziare, assicurati di avere il nome di dominio puntato al tuo indirizzo IP del server. Inoltre, assicurati di aver generato SSL Letsencrypt.
Crea una nuova configurazione dei blocchi del server Nginx ‘/etc/nginx/conf.d/drupal.conf‘ utilizzando il seguente editor nano.
sudo nano /etc/nginx/conf.d/drupal.confAggiungi la seguente configurazione al file. E assicurati di cambiare il nome di dominio e il percorso dei certificati SSL. Questo esempio utilizza il dominio http://drupal.howtoforge.local come dominio principale per l’installazione di Drupal.
server {
listen 80;
server_name drupal.howtoforge.local;
return 301 https://$host$request_uri;
}
server {
listen 443 http2 ssl;
server_name drupal.howtoforge.local;
root /var/www/drupal;
ssl_certificate /etc/letsencrypt/live/drupal.howtoforge.local/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/drupal.howtoforge.local/privkey.pem;
access_log /var/log/nginx/drupal.howtoforge.local.access.log;
error_log /var/log/nginx/drupal.howtoforge.local.error.log;
location = /favicon.ico {
log_not_found off;
access_log off;
}
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
location ~ \\..*/.*\.php$ {
return 403;
}
location ~ ^/sites/.*/private/ {
return 403;
}
# Blocca l'accesso agli script nella directory dei file del sito
location ~ ^/sites/[^/]+/files/.*\.php$ {
deny all;
}
location ~ (^|/)\. {
return 403;
}
location / {
try_files $uri /index.php?$query_string;
}
location @rewrite {
rewrite ^/(.*)$ /index.php?q=$1;
}
location ~ /vendor/.*\.php$ {
deny all;
return 404;
}
location ~ '\.php$|^/update.php' {
fastcgi_split_path_info ^(.+?\.php)(|/.*)$;
include fastcgi_params;
# Blocca gli attacchi httpoxy. Vedi https://httpoxy.org/.
fastcgi_param HTTP_PROXY "";
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param QUERY_STRING $query_string;
fastcgi_intercept_errors on;
fastcgi_pass unix:/run/php-fpm/drupal.sock;
}
location ~ ^/sites/.*/files/styles/ { # Per Drupal >= 7
try_files $uri @rewrite;
}
# Gestisci i file privati tramite Drupal. Il percorso dei file privati può arrivare
# con un prefisso di lingua.
location ~ ^(/[a-z\-]+)?/system/files/ { # Per Drupal >= 7
try_files $uri /index.php?$query_string;
}
location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ {
try_files $uri @rewrite;
expires max;
log_not_found off;
}
}Salva il file ed esci dall’editor quando hai finito.
Ora, esegui il seguente comando per verificare la configurazione di Nginx. Dovresti ricevere un messaggio di output come ‘test successful - syntax ok‘, il che significa che hai configurazioni Nginx corrette e nessun errore.
sudo nginx -tSuccessivamente, esegui il seguente comando systemctl per riavviare il servizio Nginx e applicare la nuova configurazione del blocco del server.
sudo systemctl restart nginx
Il servizio Nginx dovrebbe ora essere in esecuzione con la nuova configurazione del blocco del server ‘/etc/nginx/conf.d/drupal.conf’. Esegui il seguente comando per verificare il servizio Nginx e assicurati che il servizio sia in esecuzione.
sudo systemctl status nginxDovresti ricevere un output simile al seguente - Il servizio Nginx è in esecuzione.

Ora dovresti essere in grado di accedere alla tua installazione di Drupal tramite il tuo dominio.
Avvio dell’Installazione di Drupal
A questo punto, hai terminato la configurazione delle dipendenze dei pacchetti per Drupal. Ora puoi accedere al tuo Drupal tramite il tuo dominio.
In questo passaggio, avvierai l’installazione di Drupal, inoltre configurerai i dettagli riguardanti il tuo Drupal e imposterai l’utente admin per Drupal.
Apri il tuo browser web e visita il nome di dominio della tua installazione di Drupal (ad es: https://drupal.howtoforge.local/). Dovresti vedere la pagina di installazione di Drupal.
Seleziona la lingua per la tua installazione di Drupal oppure puoi utilizzare il predefinito ‘English‘ e fare clic sul pulsante ‘Salva e continua‘.

Seleziona il profilo di installazione per la tua installazione e fai clic su ‘Salva e continua‘. Questo esempio utilizza il profilo ‘Standard‘.

Ora configura il database per la tua installazione di Drupal. Inserisci i dettagli del database MariaDB e dell’utente che hai già creato in precedenza.
Fai clic su Salva e continua di nuovo.

E ora l’installazione di Drupal inizierà.

Inserisci informazioni dettagliate sulla tua installazione di Drupal. Assicurati anche di utilizzare il tuo nome utente per l’admin di Drupal e di utilizzare una password sicura.
Fai clic su Salva e continua.

Quando l’installazione di Drupal è terminata, vedrai la seguente pagina. Puoi vedere messaggi come ‘Congratulazioni, hai installato Drupal!‘.

Conclusione
In questa guida, hai imparato come installare l’ultima versione di Drupal v9 su un server Rocky Linux. Hai anche appreso l’installazione del LAMP Stack (Linux, Apache2/httpd, MySQL/MariaDB e PHP) e la configurazione di base per l’hosting di Drupal. Inoltre, hai imparato come installare le estensioni PHP dal repository PECL (PHP Extension Community Library).
Con Drupal in esecuzione e protetto con certificati SSL e configurazione ‘trusted_hosts’ abilitata, ora puoi estendere il deployment di Drupal installando nuovi temi o aggiungendo alcuni plugin per la tua installazione di Drupal.
Ricevi i nuovi post nella tua casella di posta.
Nessuno spam. Disiscriviti in qualsiasi momento.