GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Come installare Drupal su Ubuntu 18.04

Drupal è una delle piattaforme CMS open source più popolari al mondo. È scritto in PHP e può essere utilizzato per creare diversi tipi di siti Web, da piccoli blog personali a grandi siti aziendali, politici e governativi.

In questo tutorial, ti mostreremo come installare Drupal 8.6 su una macchina Ubuntu 18.04. Esistono diversi modi per installare Drupal. Questo tutorial illustra i passaggi necessari per l'installazione di Drupal 8.6 utilizzando un modello di composizione per i progetti Drupal chiamato drupal-project.

Useremo Nginx come server web, l'ultimo PHP 7.2 e MySQL/MariaDB come server di database.

Prerequisiti #

Assicurati di aver soddisfatto i seguenti prerequisiti prima di continuare con questo tutorial:

  • Hai un nome di dominio che punta all'IP del tuo server pubblico. Useremo example.com .
  • Hai installato Nginx seguendo queste istruzioni.
  • Hai un certificato SSL installato per il tuo dominio. Puoi installare un certificato SSL Let's Encrypt gratuito seguendo queste istruzioni.

Prima di iniziare #

Aggiorna l'indice del pacchetto e i pacchetti di sistema alle ultime versioni:

sudo apt update && sudo apt upgrade

1. Crea un database MySQL #

Se hai MySQL o MariaDB installato sul tuo server puoi saltare questo passaggio, in caso contrario puoi installare il pacchetto del server MySQL 5.7 dai repository predefiniti di Ubuntu digitando:

sudo apt install mysql-server
Per nuove installazioni MySQL, si consiglia di eseguire mysql_secure_installation comando per migliorare la sicurezza del tuo server MySQL.

Ora dobbiamo accedere alla shell MySQL e creare un nuovo database e account utente e fornire all'utente le autorizzazioni di concessione appropriate.

Per accedere alla shell MySQL, digita il seguente comando e inserisci la password quando richiesto:

mysql -u root -p

Per creare un database denominato drupal , utente denominato drupaluser e per concedere le autorizzazioni necessarie all'utente eseguire i seguenti comandi:

CREATE DATABASE drupal CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES ON drupal.* TO 'drupaluser'@'localhost' IDENTIFIED BY 'change-with-strong-password';

2. Installa PHP #

PHP 7.2, che è la versione PHP predefinita in Ubuntu 18.04, è completamente supportato e consigliato per Drupal 8.6. Poiché utilizzeremo Nginx come server web, installeremo anche PHP-FPM.

Per installare tutti i moduli PHP richiesti, esegui il seguente comando:

sudo apt install php7.2-cli php7.2-fpm php7.2-mysql php7.2-json php7.2-opcache php7.2-mbstring php7.2-xml php7.2-gd php7.2-curl

Il servizio PHP-FPM si avvierà automaticamente al termine del processo di installazione, puoi verificarlo stampando lo stato del servizio:

systemctl status php7.2-fpm

L'output dovrebbe indicare che il servizio fpm è attivo e in esecuzione.

● php7.2-fpm.service - The PHP 7.2 FastCGI Process Manager
   Loaded: loaded (/lib/systemd/system/php7.2-fpm.service; enabled; vendor preset: enabled)
   Active: active (running) since Sat 2018-05-19 19:54:13 UTC; 9h ago
     Docs: man:php-fpm7.2(8)
 Main PID: 17781 (php-fpm7.2)
   Status: "Processes active: 0, idle: 2, Requests: 0, slow: 0, Traffic: 0req/sec"
    Tasks: 3 (limit: 507)
   CGroup: /system.slice/php7.2-fpm.service
           ├─17781 php-fpm: master process (/etc/php/7.2/fpm/php-fpm.conf)
           ├─17796 php-fpm: pool www
           └─17797 php-fpm: pool www

3. Installa il compositore #

Composer è un gestore delle dipendenze per PHP e lo useremo per scaricare il modello Drupal e installare tutti i componenti Drupal necessari.

Per installare composerglobally, scarica il programma di installazione di Composer con curl e sposta il file in /usr/local/bin directory:

curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer

Verifica l'installazione stampando la versione del compositore:

composer --version

L'output dovrebbe essere simile a questo:

Composer version 1.6.5 2018-05-04 11:44:59

4. Installa Drupal #

Ora che abbiamo installato il compositore, possiamo procedere e creare un nuovo progetto Drupal utilizzando il template del compositore all'interno di /var/www/my_drupal directory:

sudo composer create-project drupal-composer/drupal-project:8.x-dev /var/www/my_drupal --stability dev --no-interaction

Il comando sopra scaricherà il modello, recupererà tutti i pacchetti php richiesti ed eseguirà alcuni script per preparare il nostro progetto per l'installazione. Il processo potrebbe richiedere alcuni minuti e, se ha esito positivo, la fine dell'output dovrebbe essere simile alla seguente:

Create a sites/default/settings.php file with chmod 0666
Create a sites/default/files directory with chmod 0777

Il prossimo passo è installare Drupal usando Drush. Nel comando seguente stiamo passando il database MySQL e le informazioni sull'utente create nel passaggio 1:

cd /var/www/my_drupalsudo vendor/bin/drush site-install --db-url=mysql://drupaluser:change-with-strong-password@localhost/drupal

Il programma di installazione ti chiederà con il seguente messaggio, basta premere invio per continuare.

You are about to DROP all tables in your 'drupal' database. Do you want to continue? (yes/no) [yes]:

Una volta completata l'installazione, lo script stamperà il nome utente e la password dell'amministratore. L'output dovrebbe essere simile al seguente:

[notice] Starting Drupal installation. This takes a while. Consider using the --notify global option.
[success] Installation complete.  User name: admin  User password: XRkC9Q5WN9

Infine, dobbiamo impostare i permessi corretti in modo che il server web possa avere pieno accesso ai file e alle directory del sito. Sia Nginx che PHP funzionano come www-data utente e www-data gruppo, quindi dobbiamo emettere il seguente comando:

sudo chown -R www-data: /var/www/my_drupal

5. Configura Nginx #

A questo punto dovresti già avere Nginx con certificato SSL installato sul tuo sistema, in caso contrario controlla i prerequisiti per questo tutorial.

Per creare un nuovo blocco server per il nostro nuovo progetto Drupal utilizzeremo la ricetta Nginx dal sito ufficiale di Nginx.

Apri il tuo editor di testo e crea il seguente file:

sudo nano /etc/nginx/sites-available/example.com
/etc/nginx/sites-available/example.com
# Redirect HTTP -> HTTPS
server {
    listen 80;
    server_name www.example.com example.com;

    include snippets/letsencrypt.conf;
    return 301 https://example.com$request_uri;
}

# Redirect WWW -> NON WWW
server {
    listen 443 ssl http2;
    server_name www.example.com;

    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem;
    include snippets/ssl.conf;

    return 301 https://example.com$request_uri;
}

server {
    listen 443 ssl http2;
    server_name example.com;

    root /var/www/my_drupal/web;

    # SSL parameters
    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem;
    include snippets/ssl.conf;

    # log files
    access_log /var/log/nginx/example.com.access.log;
    error_log /var/log/nginx/example.com.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;
    }

    # Block access to scripts in site files directory
    location ~ ^/sites/[^/]+/files/.*\.php$ {
        deny all;
    }

    # 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 /index.php?$query_string;
    }

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

    # Don't allow direct access to PHP files in the vendor directory.
    location ~ /vendor/.*\.php$ {
        deny all;
        return 404;
    }


    location ~ '\.php$|^/update.php' {
        fastcgi_split_path_info ^(.+?\.php)(|/.*)$;
        include fastcgi_params;
        # Block httpoxy attacks. See 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/php7.2-fpm.sock;
    }

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

    # Handle private files through Drupal. Private file's path can come
    # with a language prefix.
    location ~ ^(/[a-z\-]+)?/system/files/ { # For 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;
    }

}
Non dimenticare di sostituire example.com con il tuo dominio Drupal e impostare il percorso corretto per i file del certificato SSL. Tutte le richieste HTTP verranno reindirizzate a HTTPS. Gli snippet utilizzati in questa configurazione vengono creati in questa guida.

Abilita il blocco del server creando un collegamento simbolico a sites-enabled directory:

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/

Prima di riavviare il servizio Nginx fai un test per assicurarti che non ci siano errori di sintassi:

sudo nginx -t

Se non ci sono errori, l'output dovrebbe essere simile a questo:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Infine, riavvia il servizio Nginx digitando:

sudo systemctl restart nginx

6. Testare l'installazione #

Apri il browser, digita il tuo dominio e supponendo che l'installazione sia andata a buon fine, apparirà una schermata simile alla seguente:

Puoi accedere come amministratore e iniziare a personalizzare la tua nuova installazione di Drupal.

7. Installa moduli e temi Drupal #

Ora che hai installato il tuo progetto Drupal, ti consigliamo di installare alcuni moduli e temi. I moduli e i temi di Drupal sono ospitati su un repository di composizione personalizzato, che drupal-project configura per noi immediatamente.

Per installare un modulo o un tema, tutto ciò che devi fare è cd nella directory del progetto e digita composer require drupal/module_or_theme_name . Ad esempio, se vogliamo installare il Pathautomodule, dobbiamo eseguire il seguente comando:

cd /var/www/my_drupalsudo -u www-data composer require drupal/pathauto
Anteponendo sudo -u www-data stiamo eseguendo il comando come utente www-data
Using version ^1.3 for drupal/pathauto
./composer.json has been updated
> DrupalProject\composer\ScriptHandler::checkComposerVersion
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 3 installs, 0 updates, 0 removals
  - Installing drupal/token (1.5.0): Downloading (100%)         
  - Installing drupal/ctools (3.2.0): Downloading (100%)         
  - Installing drupal/pathauto (1.3.0): Downloading (100%)         
Package phpunit/phpunit-mock-objects is abandoned, you should avoid using it. No replacement was suggested.
Writing lock file
Generating autoload files
> DrupalProject\composer\ScriptHandler::createRequiredFiles

Come puoi vedere dall'output sopra, il compositore installa anche tutte le dipendenze del pacchetto per noi.

8. Aggiorna il core Drupal #

Prima di eseguire l'aggiornamento è sempre una buona idea eseguire un backup dei file e del database. Puoi utilizzare il modulo Backup e migrazione o eseguire manualmente il backup del database e dei file.

Per eseguire il backup dei file di installazione puoi utilizzare il seguente comando rsync, ovviamente dovrai utilizzare il percorso corretto della directory di installazione:

sudo rsync -a /var/www/my_drupal/  /var/www/my_drupal_$(date +%F)

Per eseguire il backup del database possiamo utilizzare lo standard mysqldump comando:

mysqldump -u root -p > /var/www/my_drupal_database_$(date +%F).sql

o drush sql-dump :

cd /var/www/my_drupalvendor/bin/drush sql-dump > /var/www/my_drupal_database_$(date +%F).sql

Ora che abbiamo creato un backup possiamo continuare e aggiornare tutti i file core di Drupal eseguendo il seguente comando:

sudo -u www-data composer update drupal/core webflo/drupal-core-require-dev symfony/* --with-dependencies

Ubuntu
  1. Come installare Drupal 7 su Ubuntu 14.04

  2. Come installare Drupal su Ubuntu 16.04

  3. Come installare R su Ubuntu 16.04

  4. Come installare Vai su Ubuntu 18.04

  5. Come installare Drupal su Ubuntu 18.04

Come installare Drupal su Ubuntu 16.04

Come installare Drupal su Ubuntu 18.04 LTS

Come installare Drupal su Ubuntu 20.04 LTS

Come installare Go in Ubuntu 20.04

Come installare Vai su Ubuntu 22.04

Come installare Drupal 9 su Ubuntu 20.04