GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment installer Drupal sur Ubuntu 18.04

Drupal est l'une des plates-formes CMS open source les plus populaires au monde. Il est écrit en PHP et peut être utilisé pour créer différents types de sites Web, allant des petits blogs personnels aux grands sites d'entreprise, politiques et gouvernementaux.

Dans ce tutoriel, nous allons vous montrer comment installer Drupal 8.6 sur une machine Ubuntu 18.04. Il existe plusieurs façons d'installer Drupal. Ce tutoriel couvre les étapes nécessaires à l'installation de Drupal 8.6 à l'aide d'un modèle de composition pour les projets Drupal appelé drupal-project.

Nous utiliserons Nginx comme serveur Web, le dernier PHP 7.2 et MySQL/MariaDB comme serveur de base de données.

Prérequis #

Assurez-vous que vous avez satisfait aux prérequis suivants avant de poursuivre ce didacticiel :

  • Vous avez un nom de domaine pointant vers l'IP de votre serveur public. Nous utiliserons example.com .
  • Vous avez installé Nginx en suivant ces instructions.
  • Vous avez installé un certificat SSL pour votre domaine. Vous pouvez installer un certificat SSL Let's Encrypt gratuit en suivant ces instructions.

Avant de commencer #

Mettez à jour l'index des packages et les packages système vers les dernières versions :

sudo apt update && sudo apt upgrade

1. Créer une base de données MySQL #

Si vous avez MySQL ou MariaDB installé sur votre serveur, vous pouvez ignorer cette étape, sinon vous pouvez installer le package de serveur MySQL 5.7 à partir des référentiels par défaut d'Ubuntu en tapant :

sudo apt install mysql-server
Pour les nouvelles installations de MySQL, il est recommandé d'exécuter le mysql_secure_installation commande pour améliorer la sécurité de votre serveur MySQL.

Nous devons maintenant nous connecter au shell MySQL et créer une nouvelle base de données et un compte utilisateur et donner à l'utilisateur les autorisations d'octroi appropriées.

Pour vous connecter au shell MySQL, tapez la commande suivante et entrez le mot de passe lorsque vous y êtes invité :

mysql -u root -p

Pour créer une base de données nommée drupal , utilisateur nommé drupaluser et pour accorder les autorisations nécessaires à l'utilisateur, exécutez les commandes suivantes :

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. Installer PHP #

PHP 7.2, qui est la version PHP par défaut dans Ubuntu 18.04, est entièrement pris en charge et recommandé pour Drupal 8.6. Puisque nous utiliserons Nginx comme serveur Web, nous installerons également PHP-FPM.

Pour installer tous les modules PHP requis, exécutez la commande suivante :

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

Le service PHP-FPM démarrera automatiquement une fois le processus d'installation terminé, vous pouvez le vérifier en imprimant l'état du service :

systemctl status php7.2-fpm

La sortie doit indiquer que le service fpm est actif et en cours d'exécution.

● 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. Installer le compositeur #

Composer est un gestionnaire de dépendances pour PHP et nous l'utiliserons pour télécharger le modèle Drupal et installer tous les composants Drupal nécessaires.

Pour installer composerglobally, téléchargez le programme d'installation de Composer avec curl et déplacez le fichier vers /usr/local/bin répertoire :

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

Vérifiez l'installation en imprimant la version composer :

composer --version

Le résultat devrait ressembler à ceci :

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

4. Installer Drupal #

Maintenant que composer est installé, nous pouvons continuer et créer un nouveau projet Drupal en utilisant le modèle de composition dans /var/www/my_drupal répertoire :

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

La commande ci-dessus téléchargera le modèle, récupérera tous les packages php requis et exécutera des scripts pour préparer notre projet pour l'installation. Le processus peut prendre quelques minutes et s'il réussit, la fin de la sortie devrait ressembler à ceci :

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

L'étape suivante consiste à installer Drupal à l'aide de Drush. Dans la commande ci-dessous, nous transmettons la base de données MySQL et les informations utilisateur créées à l'étape 1 :

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

Le programme d'installation vous demandera le message suivant, appuyez simplement sur Entrée pour continuer.

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

Une fois l'installation terminée, le script imprimera le nom d'utilisateur et le mot de passe administratifs. Le résultat devrait ressembler à ceci :

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

Enfin, nous devons définir les autorisations correctes afin que le serveur Web puisse avoir un accès complet aux fichiers et répertoires du site. Nginx et PHP s'exécutent en tant que www-data utilisateur et www-data groupe, nous devons donc émettre la commande suivante :

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

5. Configurer Nginx #

À présent, vous devriez déjà avoir Nginx avec certificat SSL installé sur votre système, sinon vérifiez les prérequis pour ce tutoriel.

Pour créer un nouveau bloc serveur pour notre nouveau projet Drupal, nous utiliserons la recette Nginx du site officiel Nginx.

Ouvrez votre éditeur de texte et créez le fichier suivant :

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;
    }

}
N'oubliez pas de remplacer example.com par votre domaine Drupal et de définir le chemin correct vers les fichiers de certificat SSL. Toutes les requêtes HTTP seront redirigées vers HTTPS. Les extraits utilisés dans cette configuration sont créés dans ce guide.

Activez le bloc serveur en créant un lien symbolique vers le sites-enabled répertoire :

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

Avant de redémarrer le service Nginx faites un test pour vous assurer qu'il n'y a pas d'erreurs de syntaxe :

sudo nginx -t

S'il n'y a pas d'erreurs, la sortie devrait ressembler à ceci :

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

Enfin, redémarrez le service Nginx en tapant :

sudo systemctl restart nginx

6. Testez l'installation #

Ouvrez votre navigateur, tapez votre domaine et en supposant que l'installation est réussie, un écran similaire au suivant apparaîtra :

Vous pouvez vous connecter en tant qu'administrateur et commencer à personnaliser votre nouvelle installation Drupal.

7. Installer les modules et thèmes Drupal #

Maintenant que votre projet Drupal est installé, vous souhaiterez installer des modules et des thèmes. Les modules et thèmes Drupal sont hébergés sur un référentiel de compositeur personnalisé, que drupal-project configure pour nous dès le départ.

Pour installer un module ou un thème, il vous suffit de cd dans le répertoire du projet et tapez composer require drupal/module_or_theme_name . Par exemple, si nous voulons installer le Pathautomodule, nous devons exécuter la commande suivante :

cd /var/www/my_drupalsudo -u www-data composer require drupal/pathauto
En ajoutant sudo -u www-data nous exécutons la commande en tant qu'utilisateur 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

Comme vous pouvez le voir dans la sortie ci-dessus, composer installe également toutes les dépendances du package pour nous.

8. Mettre à jour le noyau Drupal #

Avant la mise à niveau, il est toujours judicieux de faire une sauvegarde de vos fichiers et de votre base de données. Vous pouvez soit utiliser le module de sauvegarde et de migration, soit sauvegarder manuellement votre base de données et vos fichiers.

Pour sauvegarder les fichiers d'installation, vous pouvez utiliser la commande rsync suivante, bien sûr, vous devrez utiliser le chemin correct vers le répertoire d'installation :

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

Pour sauvegarder la base de données, nous pouvons soit utiliser le standard mysqldump commande :

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

ou drush sql-dump :

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

Maintenant que nous avons créé une sauvegarde, nous pouvons continuer et mettre à jour tous les fichiers principaux de Drupal en exécutant la commande suivante :

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

Ubuntu
  1. Comment installer Drupal 7 sur Ubuntu 14.04

  2. Comment installer Drupal sur Ubuntu 16.04

  3. Comment installer R sur Ubuntu 16.04

  4. Comment installer Go sur Ubuntu 18.04

  5. Comment installer Drupal sur Ubuntu 18.04

Comment installer Drupal sur Ubuntu 16.04

Comment installer Drupal sur Ubuntu 18.04 LTS

Comment installer Drupal sur Ubuntu 20.04 LTS

Comment installer Go dans Ubuntu 20.04

Comment installer Go sur Ubuntu 22.04

Comment installer Drupal 9 sur Ubuntu 20.04