Ricerca nel sito web

Come installare Drupal CMS con Apache2 su Ubuntu 22.04


Su questa pagina

  1. Prerequisiti
  2. Installazione del server Web Apache2
  3. Installazione del server MariaDB
  4. Installazione e configurazione di PHP 8.x
  5. Installazione di Composer
  6. Scarica l'ultima versione di Drupal
  7. Impostazione dell'host virtuale Apache2 per Drupal
  8. Esecuzione del programma di installazione Web Drupal
  9. Conclusione

Drupal è un sistema di gestione dei contenuti web gratuito e open source scritto in PHP e distribuito sotto GNU General Public License. Drupal fornisce un robusto strumento di gestione dei contenuti con sofisticate API per la pubblicazione multicanale. Drupal è utilizzato in almeno il 14% dei primi 10.000 siti Web su Internet, è utilizzato per i siti di industrie, governi, istruzione e istituzioni globali. Drupal fornisce un sistema altamente scalabile, integrato con applicazioni digitali, e può essere utilizzato per creare multisito per diverse organizzazioni con supporto multilingue.

In questa guida, ti mostrerò come installare l'ultima versione di Drupal su un sistema Ubuntu 22.04. Questa guida include l'installazione di alcune dipendenze dei pacchetti come il server Web Apache2, il database MariaDB, PHP 8.1 e Composer come strumento di gestione dei pacchetti PHP. L'obiettivo qui è che avrai completato l'installazione di Drupal con LAMP Stack e protetto con certificati SSL.

Prerequisiti

Per completare questa guida, avrai bisogno dei seguenti requisiti:

  • Un server Ubuntu 22.04. Questa demo utilizza un server Ubuntu con il nome host server-ubuntu e il firewall UFW abilitato.
  • Un utente non root con privilegi amministrativi.
  • Un nome di dominio puntava all'indirizzo IP del server Ubuntu.

Installazione del server Web Apache2

Nella prima fase, installerai il server Web Apache tramite APT dai repository Ubuntu. Al momento della stesura di questo articolo, l'ultima versione di Drupal 9 richiedeva almeno Apache v2.x.

La maggior parte dello sviluppo di Drupal è in esecuzione con il server Web Apache, ma anche un altro server Web come Nginx.

Prima di installare i pacchetti, eseguire il seguente comando apt come utente sudo non root per aggiornare e aggiornare il repository dell'indice dei pacchetti. Puoi anche utilizzare l'utente root diretto sul tuo server.

sudo apt update

Ora installa il server Web Apache eseguendo il comando apt di seguito. Verrà richiesto di confermare l'installazione di Apache, inserire Y per accettare e premere INVIO.

sudo apt install apache2

Successivamente, utilizzare i seguenti comandi systemctl di seguito per controllare e verificare il servizio apache2.

Dovresti ottenere l'output che il servizio apache2 è abilitato e verrà eseguito automaticamente all'avvio del sistema. Inoltre, riceverai l'output dello stato del servizio apache2 in esecuzione.

sudo systemctl is-enabled apache2
sudo systemctl status apache2

Infine, dovrai aggiungere la regola \Apache Full\ al firewall UFW. La regola \Apache Full\ consentirà automaticamente l'accesso alle porte HTTP e HTTPS, e questo è incluso per impostazione predefinita con i pacchetti Apache.

Eseguire il seguente comando per aggiungere la regola \Apache Full\. Quindi, controlla e verifica lo stato del firewall UFW. Dovresti ricevere un output che la regola \Apache Full\ è stata aggiunta al firewall UFW.

sudo ufw allow "Apache Full"
sudo ufw status

Installazione del server MariaDB

Drupal supporta più RDBMS (Relational Database Management System) come MySQL/MariaDB, PostgreSQL e SQLite. In questo esempio, installerai Drupal con il server del database MariaDB.

L'ultima versione attuale di Drupal 9 richiedeva almeno il server MariaDB v10.3.x. E l'ultimo repository Ubuntu fornisce il server MariaDB v10.6.

Utilizzare il seguente comando apt per installare i pacchetti del server MariaDB. Quando viene richiesto di confermare l'installazione, immettere Y per confermare, quindi premere INVIO.

sudo apt install mariadb-server mariadb-client

Una volta installato il server MariaDB, eseguire il seguente comando systemctl per verificare lo stato del servizio mariadb.

Riceverai un output che il server mariadb è abilitato e verrà eseguito automaticamente all'avvio/avvio del sistema. E lo stato corrente del servizio mariadb è in esecuzione.

sudo systemctl is-enabled mariadb
sudo systemctl status mariadb

Ora che il servizio mariadb è in esecuzione, è necessario configurare e proteggere l'installazione del server MariaDB. Per fare ciò, puoi utilizzare lo strumento da riga di comando mysql_secure_installation fornito dal pacchetto del server MariaDB.

Eseguire il seguente comando per iniziare a configurare e proteggere l'installazione del server MariaDB.

sudo mysql_secure_installation

Ora ti verranno poste le seguenti domande:

  • Per l'installazione predefinita del server MariaDB senza una password di root, premi INVIO quando ti viene chiesta la password.
  • L'autenticazione locale per gli utenti root di MariaDB è protetta per impostazione predefinita, inserisci n quando ti viene chiesto di modificare il metodo di autenticazione in unix_socket.
  • Inserisci Y per creare una nuova password root MariaDB. Quindi, inserisci la password complessa per il tuo utente root MariaDB e ripeti.
  • Quando ti viene chiesto di disabilitare l'autenticazione remota per l'utente root MariaDB, inserisci Y per accettare.
  • L'installazione predefinita del server MariaDB viene fornita con il test del database e consente a un utente anonimo di accedervi. Immettere Y per entrambe le impostazioni per rimuovere il test del database predefinito e rimuovere il privilegio anonimo.
  • Infine, inserisci Y per confermare il ricaricamento dei privilegi delle tabelle.

A questo punto, hai configurato la password root di MariaDB e protetto l'installazione del server MariaDB. Ora creerai un nuovo database e un nuovo utente per Drupal. Per fare ciò, devi prima accedere alla shell MariaDB tramite il comando mysql (client MySQL/MariaDB).

Utilizzare il seguente comando mysql per accedere alla shell MariaDB come utente root. Quando viene richiesta la password, inserisci la tua password di root MariaDB. Inoltre, puoi semplicemente premere INVIO se stai eseguendo questo comando come utente root di sistema Linux.

sudo mysql -u root -p

Successivamente, esegui le seguenti query per creare un nuovo database MariaDB e un utente per Drupal. In questo esempio, creerai il database drupaldb con l'utente drupal e la password è password. Puoi sostituire la password con la tua nuova password sicura.

CREATE DATABASE drupaldb;
CREATE USER WITH GRANT OPTION;
FLUSH PRIVILEGES;

Ora esegui un'altra query successiva per verificare i privilegi dell'utente MariaDB [email protetto]. Quindi, puoi uscire dalla shell MariaDB tramite la query quit o semplicemente premendo Ctrl+d.

Dovresti ricevere l'output che l'utente MariaDB [email protetto] ha accesso al database drupaldb.

SHOW GRANTS FOR ;
quit

Installazione e configurazione di PHP 8.x

Al momento della stesura di questo documento, si consiglia di utilizzare PHP 8.x per l'installazione con l'ultima versione di Drupal 9. Inoltre, dovrai installare alcune estensioni PHP aggiuntive come php-apcu per la cache, php-gd per l'elaborazione delle immagini, php-mysql come driver per il database MariaDB e altre.

In questo esempio, installerai PHP 8.1 fornito dai repository di Ubuntu. Utilizzare il seguente comando apt per installare PHP 8.1 e alcune estensioni e pacchetti aggiuntivi necessari.

Quando viene chiesto di confermare l'installazione, inserire Y per accettare e premere INVIO.

sudo apt install php php-apcu php-dev libapache2-mod-php libcurl4-openssl-dev php-cli php-mysql php-zip php-gd php-fpm php-json php-common php-intl php-mbstring php-curl php-xml php-pear php-tidy php-soap php-bcmath php-xmlrpc

Una volta installato PHP, dovrai installare un'ulteriore estensione PHP uploadprogress dal repository PECL (PHP Extensions Community Library). Per fare ciò, puoi utilizzare la riga di comando pecl fornita dal pacchetto php-pear.

L'estensione uploadprogress viene utilizzata da Drupal per mostrare e tenere traccia dei dettagli sull'avanzamento del caricamento di un file, che include il tempo rimanente stimato e l'accesso ai contenuti del file durante il caricamento.

Usa il comando pecl qui sotto per installare l'estensione PHP uploadprogress. Il comando pecl ora scaricherà il sorgente dell'estensione uploadprogress e compilerà e installerà automaticamente l'estensione.

sudo pecl install uploadprogress

Al termine dell'installazione, eseguire il seguente comando per creare un nuovo file di configurazione per l'estensione PHP uploadprogress.

cat <<EOF | sudo tee /etc/php/8.1/mods-available/uploadprogress.ini
; configuration for php uploadprogress module
; priority 15
extension=uploadprogress.so
EOF

Ora esegui il seguente comando per abilitare l'estensione uploadprogress sulla tua installazione PHP.

sudo ln -s /etc/php/8.1/mods-available/uploadprogress.ini /etc/php/8.1/apache2/conf.d/15-uploadprogress.ini

Ora hai terminato l'installazione di tutti i pacchetti PHP per Drupal. Ora dovrai configurare l'installazione di PHP modificando il file php.ini.

Apri il file /etc/php/8.1/apache2/php.ini usando il tuo editor di testo. In questo esempio, useremo nano.

sudo nano /etc/php/8.1/apache2/php.ini

Modifica alcune delle opzioni come di seguito. L'opzione memory_limit dovrebbe dipendere dalla memoria del server e l'opzione date.timezone dovrebbe dipendere dal tuo fuso orario.

memory_limit = 512M
upload_max_filesize = 60M
max_execution_time = 300
date.timezone = Europe/Paris

Salva e chiudi il file quando hai finito.

Successivamente, utilizza il seguente comando systemctl per riavviare il servizio apache2 e applicare le nuove modifiche alle configurazioni PHP.

sudo systemctl restart apache2

Ora che hai terminato l'installazione e la configurazione di PHP 8.1, puoi ora verificare l'installazione creando il file phpinfo.

Esegui il seguente comando per creare un nuovo file phpinfo /var/www/html/info.php. Questo file contiene lo script phpinfo che ti mostrerà le configurazioni dettagliate del tuo PHP sul tuo browser web.

cat <<EOF | sudo tee /var/www/html/info.php
<?php
phpinfo();
?>
EOF

Infine, apri il tuo browser web e visita l'indirizzo IP del tuo server Ubuntu seguendo l'URL del percorso /info.php (es: http://192.168.5.100/info.php). Dovresti vedere la pagina per i tuoi dettagli sull'installazione di PHP 8.1.

Installazione del compositore

Un compositore è uno strumento da riga di comando per la gestione delle dipendenze dei pacchetti PHP. Devi installare Composer che verrà utilizzato per installare le dipendenze dei pacchetti PHP della tua installazione Drupal.

Per installare Composer, eseguire il seguente comando.

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === '55ce33d7678c5a611085589f1f3ddf8b3c52d662cd01d4ba75c0ee0459970c2200a51f492d557530c71c15d8dba01eae') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"

Ecco cosa ha usato ogni comando:

  • Il primo comando scaricherà lo script di installazione di Composer in composer-setup.php. Quindi, il secondo comando verificherà l'hash dello script di installazione. Assicurarsi di ricevere il messaggio di output Installatore verificato.
  • Gli ultimi due comandi eseguiranno lo script di installazione e installeranno lo strumento di gestione delle dipendenze dei pacchetti PHP di Composer. Successivamente, lo script di installazione composer-setup.php verrà eliminato.
  • Infine, otterrai il file binario di Composer come composer.phar nella tua attuale directory di lavoro.

Successivamente, esegui il seguente comando per spostare il file binario composer.phar in /usr/local/bin/composer. Questa azione consentirà a tutti gli utenti di eseguire il comando composer.

sudo mv composer.phar /usr/local/bin/composer

Ora puoi eseguire il comando compositore per controllare e verificare la tua installazione. Il seguente comando ti mostrerà una pagina di aiuto dettagliata del comando Composer.

composer --help

Scarica l'ultima versione di Drupal

Poiché hai installato tutte le dipendenze del pacchetto per Drupal, ora scaricherai il codice sorgente di Drupal e installerai le dipendenze del pacchetto PHP tramite Composer.

Usa il seguente comando wget per scaricare l'ultima versione di Drupal. Vedrai il file drupal.tar.gz nella tua attuale directory di lavoro.

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

Ora estrai il file drupal.tar.gz tramite il comando tar qui sotto. Quindi, sposta la directory drupal estratta in /var/www/drupal. Questa directory verrà utilizzata come directory root dei documenti per l'installazione di Drupal.

tar -xvf drupal.tar.gz
mv drupal-* /var/www/drupal

Successivamente, modifica la proprietà e l'autorizzazione della directory di installazione di Drupal /var/www/drupal utilizzando il seguente comando. La proprietà deve essere www-data dell'utente e del gruppo con la normale autorizzazione utente 755.

sudo chown -R www-data:www-data /var/www/drupal/
sudo chmod -R 755 /var/www/drupal/

Ora spostati nella directory /var/www/drupal ed esegui il comando composer come di seguito per installare tutte le dipendenze PHP per la tua installazione di Drupal.

cd /var/www/drupal
sudo -u www-data composer install --no-dev

Configurazione dell'host virtuale Apache2 per Drupal

Dopo aver scaricato Drupal e installato le dipendenze del pacchetto PHP, ora imposterai e configurerai l'host virtuale Apache per l'installazione di Drupal.

Prima di iniziare a configurare un host virtuale, assicurati che il tuo nome di dominio che verrà utilizzato per Drupal sia indirizzato all'indirizzo IP del tuo server. Inoltre, assicurati che i tuoi certificati SSL siano pronti.

Esegui il seguente comando a2enmod per abilitare alcuni moduli Apache2 per Drupal.

sudo a2enmod rewrite ssl headers deflate

Ora crea un nuovo file host virtuale per drupal /etc/apache2/sites-available/drupal.conf utilizzando il seguente comando. Questo esempio utilizza l'editor nano.

sudo nano /etc/apache2/sites-available/drupal.conf

Aggiungi la seguente configurazione completa per l'host virtuale Drupal. Assicurati di modificare il nome di dominio e il percorso dei certificati SSL. In questa demo, utilizzeremo il dominio hwdomain.io per la nostra installazione di Drupal.

<VirtualHost *:80>

    ServerName hwdomain.io
    ServerAdmin
        DocumentRoot /var/www/drupal

        # Add security
        php_flag register_globals off

        ErrorLog ${APACHE_LOG_DIR}/hwdomain.io.error.log
        CustomLog ${APACHE_LOG_DIR}/hwdomain.io.access.log combined

        SSLEngine on
        SSLCertificateFile /etc/letsencrypt/live/hwdomain.io/fullchain.pem
        SSLCertificateKeyFile /etc/letsencrypt/live/hwdomain.io/privkey.pem

        <FilesMatch "\.(cgi|shtml|phtml|php)$">
                SSLOptions +StdEnvVars
        </FilesMatch>

        <Directory /var/www/drupal>
                Options FollowSymlinks
                #Allow .htaccess
                AllowOverride All
                Require all granted
                <IfModule security2_module>
                        SecRuleEngine Off
                        # or disable only problematic rules
                </IfModule>
        </Directory>

        <Directory /var/www/drupal/>
            RewriteEngine on
            RewriteBase /
            RewriteCond %{REQUEST_FILENAME} !-f
            RewriteCond %{REQUEST_FILENAME} !-d
            RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
        </Directory>

    </VirtualHost>

</IfModule>

Salva la configurazione e chiudi il file al termine.

Successivamente, esegui il seguente comando per attivare il file host virtuale drupal.conf. Quindi, prova e verifica le tue configurazioni di Apache. Se la configurazione di Apache è corretta, riceverai un messaggio di output come Syntax OK.

sudo a2ensite drupal.conf
sudo apachectl configtest

Infine, riavvia il servizio apache2 per applicare le nuove modifiche e il nuovo file dell'host virtuale. Ora puoi accedere al programma di installazione di Drupal tramite il nome di dominio e il browser web.

sudo systemctl restart apache2

Esecuzione del programma di installazione Web Drupal

Per accedere al programma di installazione di Drupal, apri il browser Web e visita il nome di dominio della tua installazione di Drupal (ad esempio: https://hwdomain.io/).

Nelle impostazioni della lingua, seleziona la tua lingua preferita e fai clic su Salva e continua. L'impostazione della lingua predefinita è l'inglese.

Seleziona il profilo di installazione per la tua installazione Drupal. Quindi, fai clic su Salva e continua.

Si utilizza un profilo standard consigliato per i nuovi utenti Drupal o si utilizza Minimal se si ha familiarità con Drupal oppure si utilizza il profilo Demo che include esempi di siti e configurazioni Drupal.

Ora inserisci i dettagli del database MariaDB per la tua installazione drupal e fai clic su Salva e continua. Se stai utilizzando MariaDB su un host diverso, utilizza le OPZIONI AVANZATE per inserire l'indirizzo IP dell'host del server MariaDB.

E inizierà l'installazione di Drupal.

Successivamente, inserisci i dettagli delle configurazioni del tuo sito Drupal che includono il nome del sito e l'utente amministratore del tuo Drupal. Al termine, fare clic su Salva e continua.

Ora dovresti ottenere la pagina che ti informa che l'installazione di Drupal è terminata. Puoi vedere un messaggio come \Congratulazioni, hai installato Drupal!.

Ora hai terminato l'installazione di Drupal, ma devi ancora impostare configurazioni aggiuntive. In questo esempio, imposterai la configurazione Drupal trusted_host, che proteggerà la tua installazione Drupal dagli attacchi dell'intestazione HTTP HOST.

Per abilitare la configurazione trusted_host, dovrai modificare la configurazione di Drupal /var/www/drupal/sites/default/settings.php.

Esegui quanto segue per rendere il file /var/www/drupal/sites/default/settings.php scrivibile. Quindi, apri il file utilizzando il tuo editor di testo. In questa demo useremo nano.

sudo chmod 644 /var/www/drupal/sites/default/settings.php
sudo nano /var/www/drupal/sites/default/settings.php

Premi Ctrl+w per cercare il modello di trusted_host. Quindi, aggiungi la seguente configurazione al file e assicurati di cambiare il nome del dominio con la tua installazione di Drupal. Il nome di dominio deve essere formattato in Regex.

$settings['trusted_host_patterns'] = [
  '^hwdomain\.io$',
];

Salva la configurazione ed esci quando hai finito. Quindi, modifica nuovamente l'autorizzazione del file per renderlo non scrivibile utilizzando il seguente comando.

sudo chmod 444 /var/www/drupal/sites/default/settings.php

Infine, torna al tuo browser web e visita il rapporto sullo stato della tua installazione di Drupal (ad esempio: https://hwdomain.io/admin/reports/status).

Vedrai le configurazioni dettagliate del server della tua installazione di Drupal. Inoltre, puoi vedere che tutte le 25 configurazioni Drupal sono state controllate con successo.

Scorri la pagina fino in fondo e vedrai le configurazioni di sistema dettagliate della tua installazione di Drupal. Di seguito, puoi vedere trusted_host e le impostazioni Upload Progress sono abilitate.

Conclusione

In questa guida, hai installato e configurato l'ultima versione di Drupal v9 sul server Ubuntu 22.04. Hai anche appreso l'installazione di base di LAMP Stack (Linux, Apache, MariaDB e PHP) sul sistema Ubuntu e l'installazione di base dell'estensione PHP dal repository PECL (PHP Extension Community Library).

Ora che hai Drupal installato e protetto con i certificati SSL e le impostazioni trusted_host abilitate. Puoi estendere la tua attuale installazione di Drupal installando temi per il tuo sito e installando alcuni plugin Drupal aggiuntivi.