GNU/Linux >> Linux Esercitazione >  >> Cent OS

Come installare Drupal su CentOS 7

Drupal è una delle principali piattaforme CMS open source in tutto il mondo. È flessibile, scalabile 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, spiegheremo come installare Drupal 8.6 su CentOS 7.

Esistono diversi modi per installare Drupal. Questa guida illustra i passaggi necessari per l'installazione di Drupal 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 #

Prima di avviare l'installazione, assicurati di aver soddisfatto i seguenti prerequisiti:

  • Disponi di un nome di dominio che punta all'IP del tuo server pubblico. Useremo example.com .
  • Avere installato Nginx.
  • Disponi di un certificato SSL installato per il tuo dominio. Puoi installare un certificato SSL Let's Encrypt gratuito seguendo queste istruzioni.
  • Acceduto come utente con privilegi sudo.

Crea un database MySQL #

Il primo passo è creare un nuovo database e un nuovo account utente e concedere le autorizzazioni appropriate all'utente.

Se MySQL o MariaDB sono già installati sul tuo server puoi saltare questo passaggio, in caso contrario puoi installare il pacchetto server MariaDB 5.5 dai repository predefiniti di CentOS digitando:

sudo yum install mariadb-server
Per le nuove installazioni di MariaDB/MySQL, si consiglia di eseguire mysql_secure_installation comando per migliorare la sicurezza del tuo server di database.

Accedi alla shell MySQL digitando 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';

Installa PHP #

CentOS 7 viene fornito con PHP versione 5.4, che è obsoleta e non più supportata. La versione PHP consigliata per Drupal è PHP 7.2.

Per installare PHP 7.2 su CentOS 7 dobbiamo prima abilitare i repository EPEL e Remi:

sudo yum install epel-release yum-utilssudo yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpmsudo yum-config-manager --enable remi-php72

Una volta che i repository sono abilitati all'installazione di PHP 7.2 e tutte le estensioni PHP richieste, esegui i seguenti comandi:

sudo yum install php-cli php-fpm php-mysql php-json php-opcache php-mbstring php-xml php-gd php-curl git

Abbiamo installato PHP FPM perché useremo Nginx come server web.

Per impostazione predefinita, l'FPM PHP verrà eseguito come utente apache sulla porta 9000. Cambieremo l'utente in nginx e passare dal socket TCP al socket Unix. Per farlo, apri il /etc/php-fpm.d/www.conf archiviare e modificare le righe evidenziate in giallo:

/etc/php-fpm.d/www.conf
...
user = nginx
...
group = nginx
...
listen = /run/php-fpm/www.sock
...
listen.owner = nginx
listen.group = nginx

Assicurati che il /var/lib/php directory ha la proprietà corretta utilizzando il seguente comando chown:

sudo chown -R root:nginx /var/lib/php

Infine, abilita e avvia il servizio PHP FPM:

sudo systemctl enable php-fpmsudo systemctl start php-fpm

Installa Composer #

Composer è un gestore delle dipendenze per PHP. Scaricheremo il modello Drupal e installeremo tutti i componenti Drupal necessari con il compositore.

Il comando seguente installerà composerglobally scaricando il programma di installazione di Composer con curl e spostando 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 eseguendo il seguente comando che stamperà la versione del compositore:

composer --version

L'output dovrebbe essere simile a questo:

Composer version 1.8.4 2019-02-11 10:52:10

Installa Drupal #

Ora che il compositore è stato installato, crea un nuovo progetto Drupal utilizzando il modello Drupal all'interno di /var/www/my_drupal directory:

sudo /usr/local/bin/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à gli script necessari per preparare il progetto per l'installazione. Il processo potrebbe richiedere alcuni minuti e, se ha esito positivo, la fine dell'output sarà simile a questa:

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 che abbiamo creato nella prima sezione:

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.
[success] Installation complete.  User name: admin  User password: frxka2Db5v

Infine, imposta le autorizzazioni corrette in modo che il server web possa avere pieno accesso ai file e alle directory del sito:

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

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/conf.d/example.com
/etc/nginx/conf.d/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-fpm/www.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.

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

sudo nginx -t

Riavvia il servizio Nginx per rendere effettive le modifiche digitando:

sudo systemctl restart nginx

Verifica l'installazione #

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

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

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 nginx /usr/local/bin/composer require drupal/pathauto
Anteponendo sudo -u nginx stiamo eseguendo il comando come utente nginx
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.

Aggiorna Drupal Core #

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 nginx /usr/local/bin/composer update drupal/core webflo/drupal-core-require-dev symfony/* --with-dependencies

Cent OS
  1. Come installare PHP 7.3, 7.2, 7.1 su CentOS/RHEL 6.10

  2. Come installare PHP 7.3 su CentOS 8

  3. Come installare PHP 7.4 su CentOS 7

  4. Come installare Drupal 7 su CentOS 7

  5. Come installare PHP 7.3 su CentOS 7

Come installare PHP su CentOS 8

Come installare PHP 7.4 su CentOS 8 / RHEL 8

Come installare TaskBoard su CentOS 7

Come installare PHP 7 su CentOS 7

Come installare PHP 7.4 su CentOS 8

Come installare PHP Composer su CentOS 8