GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Come installare Drupal 8 con Nginx, PHP-FPM e SSL su Ubuntu 15.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 enormi 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. La versione attuale di Drupal è 8.0.

In questo tutorial, installeremo Drupal 8 con il server web Nginx, MariaDB come server di database e PHP-FPM per gestire le richieste PHP. Ti mostrerò anche come installare un certificato SSL per proteggere il sito Web Drupal.

Prerequisiti

  • Ubuntu 15.10 - versione a 64 bit.
  • Privilegi di root.

Passaggio 1 - Aggiorna il sistema Ubuntu

Accedi al server Ubuntu con ssh, quindi diventa utente root e aggiorna il repository Ubuntu:

sudo su
sudo apt-get update

Fase 2 - Installa Nginx e PHP-FPM

Nginx o "engine-x" è un server HTTP veloce che si concentra su prestazioni elevate con un utilizzo ridotto di memoria/RAM. Possiamo utilizzare Nginx anche come proxy inverso, per protocolli HTTP, HTTPS, POP3 e IMAP. In questo tutorial, useremo Nginx come server HTTP abilitato SSL.

Installa Nginx con il seguente comando apt come utente sudo/root:

sudo apt-get install nginx -y

Quindi, installa php-fpm con php-gd richiesto da drupal core:

apt-get install php5-fpm php5-cli php5-gd php5-mysql -y

Nel passaggio successivo, configureremo Nginx.

Fase 3 - Configura Nginx e PHP-FPM

In questo passaggio, configureremo Nginx per utilizzare php-fpm per servire le richieste HTTP per le pagine PHP. Vai alla directory php-fpm "/etc/php/fpm" e modifica il file "php.ini":

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

In linea 773 , decommenta la riga cgi.fix_pathinfo e cambia il valore in "0 ".

cgi.fix_pathinfo=0

Salva il file ed esci dall'editor.

Ora modifichiamo la configurazione predefinita di nginx virtualhost. Modifica il file "predefinito" e abilita la direttiva php-fpm.

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

Decommenta la riga 45 - 52 per usare php-fpm con nginx.

        location ~ \.php$ {
                include snippets/fastcgi-php.conf;
        #
        #       # With php5-cgi alone:
        #       fastcgi_pass 127.0.0.1:9000;
        #       # With php5-fpm:
                fastcgi_pass unix:/var/run/php5-fpm.sock;
        }

Salva il file ed esci.

Quindi testa la configurazione di Nginx con il comando "nginx -t " per assicurarsi che sia valido:

nginx -t

Se non ci sono errori, riavvia nginx e il servizio php-fpm:

systemctl restart nginx
systemctl restart php5-fpm

Quindi, verifica che php-fpm funzioni correttamente con nginx creando un nuovo file di informazioni php nella directory web "/var/www/html".

cd /var/www/html/
echo "<?php phpinfo(); ?>" > info.php

Visita l'IP del server:192.168.1.101/info.php un browser web. Il risultato dovrebbe essere simile allo screenshot qui sotto.

Fase 4 - Installa e configura MariaDB

MariaDB è un fork del server di database del sistema di gestione dei database relazionali MYSQL, offre una funzionalità di sostituzione drop-in per mysql.

Installa l'ultima versione di MariaDB con il comando apt-get:

sudo apt-get install mariadb-client mariadb-server -y

Al termine dell'installazione, avvia MariaDB:

systemctl start mysql

Il nome del servizio MariaDB è "mysql", ecco perché il comando systemctl usa la parola mysql qui.

Ora configureremo il nome utente e la password di MariaDB con il comando seguente:

mysql_secure_installation

Accedi alla shell di MariaDB con la tua password e crea un nuovo database per drupal chiamato "drupaldb " e crea un nuovo utente MariaDB/MySQL "drupaluser " con la password "[email protetta] " e infine concedi all'utente le autorizzazioni per il database. Scegli una password sicura invece di "[email protetta]" per la tua installazione!

mysql -u root -p


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;
\q

Il database "drupaldb " con l'utente "drupaluser " è stato creato.

Passaggio 5 - Genera certificato SSL autofirmato

Vai a /etc/nginx directory e creare una nuova directory con il nome "ssl" per il file di configurazione SSL.

mkdir -p /etc/nginx/ssl
cd /etc/nginx/ssl

Quindi genera un nuovo certificato SSL autofirmato con il comando openssl di seguito:

openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/nginx/ssl/drupal.key -out /etc/nginx/ssl/drupal.crt

Compila le informazioni richieste. Il file del certificato SSL è stato generato, ora cambia i permessi del file della chiave privata "drupal.key" in 600:

chmod 600 drupal.key

Passaggio 6 - Configura VirtualHost per Drupal

Installeremo Drupal 8 nella directory "/var/www/drupal8" con il nome di dominio "drupal8.me". Sostituisci il nome di dominio nella tua installazione con il nome di dominio del sito Web per il quale desideri utilizzare questa installazione di Drupal. Quindi creiamo la directory:

mkdir -p /var/www/drupal8

Quindi vai nella directory Nginx virtualhost "/etc/nginx/sites-available/" e crea un nuovo file "drupal8" con l'editor vim:

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

Incolla la configurazione di Nginx per drupal di seguito nel file drupal8:

server {
    server_name drupal8.me;
    root /var/www/drupal8; ## <-- Your only path reference.

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

    ssl_certificate      /etc/nginx/ssl/drupal.crt;
    ssl_certificate_key  /etc/nginx/ssl/drupal.key;

    # 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;
        fastcgi_param SCRIPT_FILENAME $request_filename;
        fastcgi_intercept_errors on;
        fastcgi_pass unix:/var/run/php5-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 il file ed esci dall'editor.

Il file dell'host virtuale Drupal è stato creato, ora dobbiamo attivarlo creando un collegamento simbolico al file nella directory "siti abilitati":

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

Testare la configurazione di Nginx e riavviare Nginx:

nginx -t
systemctl restart nginx

Fase 7 - Installa e configura Drupal

Dobbiamo installare git e drush prima di iniziare con l'installazione di Drupal. Drush è una shell della riga di comando e un'interfaccia di scripting Unix per Drupal. Installalo con apt il seguente comando:

sudo apt-get install git drush -y

Quindi entra nella directory drupal8 che abbiamo creato in precedenza e scarica Drupal con il comando git o drush:

cd /var/www/drupal8
git clone --branch 8.0.x http://git.drupal.org/project/drupal.git

Se vuoi usare drush, esegui invece il comando seguente:

drush dl drupal-8

Attendi fino al termine del download, quindi sposta tutti i file Drupal nella directory principale:

mv drupal/* /var/www/drupal8/

Nel passaggio successivo configureremo il file delle impostazioni di Drupal. Dalla directory principale di Drupal, vai alla directory "sites/default" e copia i due file di configurazione "settings.php " e "services.yml ":

cd sites/default
cp default.settings.php settings.php
cp default.services.yml services.yml

Quindi dobbiamo creare una nuova directory con il nome "files " all'interno della directory "sites/default". Il comando "chmod" assicura che il file di configurazione e la directory "files" siano scrivibili per l'installazione di Drupal:

mkdir files/
chmod a+w *

Ora visita il tuo sito Drupal (nel mio caso http://drupal8.me) con il browser web verrai reindirizzato automaticamente alla connessione https e apparirà la pagina di installazione di Drupal.

Scegli la tua lingua, userò "inglese" qui.

Fai clic su "Salva e continua" .

Ora seleziona il tipo di installazione. È possibile utilizzare il tipo standard o minimo. Userò "Standard ".

Ora ti verrà mostrata la pagina di configurazione del database. Inserisci i dettagli del database per il database che abbiamo creato per Drupal.

Attendi fino al termine dell'installazione.

Ora dobbiamo configurare le impostazioni del profilo del sito come nome sito, utente e password per amministratore, e-mail ecc.

Ora Drupal è installato. Verrai reindirizzato alla home page di Drupal.

Vedrai un messaggio di errore sui permessi dei file di configurazione di drupal "settings.php" e "services.yml". Basta cambiare il loro permesso con i seguenti comandi:

cd sites/default/
chmod 644 settings.php services.yml

Ora Drupal 8 è installato con Nginx e SSL su Ubuntu 15.10.

Conclusione

Drupal è un framework di gestione dei contenuti open source gratuito basato su PHP. Può essere utilizzato per un blog personale, una home page privata o un sito Web aziendale. Drupal è distribuito sotto licenza GNU. Il componente principale di Drupal è chiamato il "Drupal Core" e fino ad ora la comunità di Drupal ha sviluppato più di 31.000 moduli per estenderlo. L'attuale versione stabile è 8.0. Drupal è facile da installare e configurare, possiamo usare Nginx o Apache come server web e PHP-FPM per gestire le richieste PHP.


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

  2. Come installare Magento 2 con Nginx e Lets Encrypt SSL su Ubuntu 20.04 LTS

  3. Come installare Mattermost con PostgreSQL e Nginx su Ubuntu 16.04

  4. Come installare MediaWiki con Nginx su Ubuntu 16.04

  5. Come installare Nginx con PHP5 e MySQL su Ubuntu 11.10

Come installare Drupal 8.1 con Nginx, PHP-FPM e SSL su Ubuntu 16.04

Come installare Redmine 3.2 con Nginx su Ubuntu 16.04

Come installare Django con PostgreSQL e Nginx su Ubuntu 16.04

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

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

Come installare Moodle con Nginx e Lets Encrypt SSL su Ubuntu 20.04