androide

Come installare drupal su Ubuntu 18.04

How to install Drupal on Ubuntu 18.04

How to install Drupal on Ubuntu 18.04

Sommario:

Anonim

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 che vanno 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 copre i passaggi necessari per l'installazione di Drupal 8.6 utilizzando un modello di composizione per progetti Drupal chiamato drupal-project.

Useremo Nginx come server web, l'ultimo PHP 7.2 e MySQL / MariaDB come server 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 Nginx installato seguendo queste istruzioni. Hai un certificato SSL installato per il tuo dominio. È possibile installare un certificato SSL Let's Encrypt gratuito seguendo queste istruzioni.

Prima di iniziare

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

sudo apt update && sudo apt upgrade

1. Creare un database MySQL

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

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

Per accedere alla shell MySQL digitare il comando seguente e inserire la password quando richiesto:

mysql -u root -p

Per creare un database chiamato drupal , l'utente chiamato drupaluser e 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 supportata e consigliata 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, è possibile 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 Composer

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

Per installare il compositore a livello globale, scaricare il programma di installazione di Composer con arricciatura e spostare il file nella /usr/local/bin :

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 assomigliare a questo:

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

4. Installa Drupal

Ora che abbiamo installato compositore, possiamo procedere e creare un nuovo progetto Drupal usando il modello compositore all'interno della directory /var/www/my_drupal :

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 all'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 utente create nel passaggio 1:

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

Il programma di installazione ti chiederà il seguente messaggio, premi Invio per continuare.

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

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

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

Infine, dobbiamo impostare le autorizzazioni corrette in modo che il server Web possa avere pieno accesso ai file e alle directory del sito. Sia Nginx che PHP sono in esecuzione come utente www-data gruppo www-data , quindi dobbiamo emettere il seguente comando:

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

5. Configura Nginx

Ormai, dovresti già avere Nginx con certificato SSL installato sul tuo sistema, se non controlla i prerequisiti per questo tutorial.

Per creare un nuovo blocco server per il nostro nuovo progetto Drupal useremo la ricetta Nginx dal sito ufficiale 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' /.*)$; 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 ~ ^(/+)?/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 sono creati in questa guida.

Abilitare il blocco server creando un collegamento simbolico alla directory sites-enabled per i sites-enabled :

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

Prima di riavviare il servizio Nginx, eseguire un test per accertarsi che non vi siano errori di sintassi:

sudo nginx -t

Se non ci sono errori, l'output dovrebbe apparire così:

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 tuo 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 i moduli e i temi di 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 compositori personalizzati, che il progetto drupal ci configura immediatamente.

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

cd /var/www/my_drupal sudo -u www-data composer require drupal/pathauto Anticipando sudo -u www-data eseguiamo il comando come www-data dell'utente

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, compositore installa anche tutte le dipendenze dei pacchetti per noi.

8. Aggiorna il core di Drupal

Prima di aggiornare è sempre una buona idea fare un backup dei tuoi file e database. È possibile utilizzare il modulo Backup e migrazione o eseguire manualmente il backup del database e dei file.

Per eseguire il backup dei file di installazione è possibile utilizzare il seguente comando rsync, ovviamente è necessario utilizzare il percorso corretto per la directory di installazione:

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

Per eseguire il backup del database è possibile utilizzare il comando mysqldump standard:

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

o drush sql-dump :

cd /var/www/my_drupal vendor/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 comando seguente:

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

Conclusione

Congratulazioni, hai installato con successo Drupal 8 usando il compositore e hai imparato come installare moduli e temi. Ora puoi iniziare a personalizzare il tuo sito. La Guida dell'utente di Drupal 8 è un buon punto di partenza per ulteriori informazioni su come gestire l'installazione di Drupal. Dovresti anche visitare il progetto modello Drupal Composer su Github.

ubuntu drupal mysql mariadb cms nginx compositore