Installer Drupal 8 en 6 étapes

Nuage

Mise à jour du 1er décembre 2017 : pour l'installation de Drupal 8, privilégier définitivement son installation avec Composer.

composer create-project drupal-composer/drupal-project:8.x-dev some-dir --stability dev --no-interaction

---

A quelques jours de la sortie officielle de Drupal 8, découvrons comment installer Drupal 8 en quelques secondes sur un serveur. Drupal 8 dispose d'une architecture radicalement différente de Drupal 7 et nécessite un certain nombre de composants au niveau du serveur pour faciliter  son installation, son administration, sa maintenance et son développement.

Passons en revue, dans ce billet de synthèse, les différentes étapes pour configurer son serveur et pouvoir ainsi installer et maintenir Drupal 8 en quelques lignes de commandes et une poignée de secondes. Les exemples donnés ci-après sont exécutés sur une Debian 8 (Jessie) mais peuvent s'appliquer sur toute autre distribution Linux.

A noter que vous aurez besoin de quelques librairies / paquets comme php5-dev, make, etc. pour exécuter les commandes qui sont explicitées plus loin. Installons tout de suite ces librairies (je passe sur apache / nginx / mysql / php5 / sudo / etc.).

sudo apt-get install make php5-dev php-pear git curl

Installation de Composer

Composer va devenir incontournable pour gérer les différentes dépendances de Drupal 8. Certains semblent avoir même franchi le pas pour revoir leur workflow de gestion du code en utilisant Composer en lieu et place de Drush make (voir l'article Goodbye Drush Make, Hello Composer!). Composer est tout aussi incontournable pour installer Drush et autres bibliothèques.

sudo curl -sS https://getcomposer.org/installer | php

Pour rendre accessible Composer globalement avec la commande composer, vous pouvez exécuter la commande suivante

sudo mv composer.phar /usr/local/bin/composer

Installation de Drush

Installons la dernière version de Drush compatible avec Drupal 8 (la version dev-master à cette date) avec Composer. Dans votre home directory, exécutez la commande ci-dessous.

composer global require drush/drush:dev-master

Afin de disposer de la commande drush depuis n'importe quel répertoire serveur, nous mettons à jour le PATH du profil du compte linux pour y indiquer le répertoire où Drush est installé. Dans le fichier .bachrc de votre profil, ajoutez la ligne ci-dessous :

export PATH="$HOME/.composer/vendor/bin:$PATH"

Puis recharchez votre configuration bash en lançant depuis votre home directory

source .bashrc

Installation de Drupal 8

Nous pouvons télécharger alors Drupal 8 (la version RC2 dans notre exemple).

drush dl drupal-8.0.0-rc2

En supposant que nous avons déjà créé une base de données dont le nom est drupal8_db, l'utilisateur mysql drupal8_user et son mot de passe drupal8_passwd, nous pouvons lancer l'installation et la configuration initiale de Drupal 8 en une ligne de commande, sans passer donc par la case backoffice et toutes les opérations à faire dans le système de fichier (création du répertoire files, du fichier settings.php, etc). Drush s'en occupe pour nous.

Positionnez vous dans le répertoire de Drupal 8, et lancez la commande

drush site-install --db-url=mysql://drupal8_user:drupal8_passwd@localhost/drupal8_db

Drupal 8 est installé et configuré en 2 lignes de commande et 10 secondes maximum. A noter qu'une tendance semble se dessiner pour privilégier l'utilisation de Composer en lieu en place de Drush, pour le téléchargement des sources du coeur de Drupal 8, de ses modules contribués et de leur mise à jour selon le précepte It is time to get off the island!. Pour approfondir la question, vous pouvez vous référer à ces éléments : Composer template for Drupal projectsComposer in relation to Drush Make ou encore Goodbye Drush Make, Hello Composer déjà cité.

Si vous souhaitez activer le mode développement rapidement (logs activé, compression js/css désactivé, cache, etc), vous devez copier le fichier example.settings.local.php situé dans le répertoire sites vers le fichier settings.local.php et l'inclure dans le fichier sites/default/settings.php, avec les quelques lignes ci-dessous à rajouter dans celui-ci.

if (file_exists(__DIR__ . '/settings.local.php')) {
  include __DIR__ . '/settings.local.php';
}

Profitez en pour rajouter dans le fichier settings.php le paramètre trusted_host_patterns. (cf. Comment régler l'erreur Trusted Host Settings non activé sous Drupal 8 ? )

$settings['trusted_host_patterns'] = array(
  '^www\.monsite\.com$',
);

Quelques paramètres PHP à surveiller.

Sans m'attarder sur la configuration PHP, il se peut que vous soyez confronté à une belle page d'erreur fatale WSOD en visitant pour la première fois votre nouveau site Drupal 8.

Si vous activez l'opcode natif de PHP 5.5+, opcache, vous devez être vigilant à bien activer les options opcache.save_comments et opcache.load_comments (elles doivent être mises à 1) ou tout du moins à ne pas les désactiver. Sinon, les annotations ne seront pas enregistrées dans le code compilé (ni lu d'ailleurs) et vous obtiendrez une belle erreur PHP fatale dans vos logs comme ci-dessous

Uncaught PHP Exception Doctrine\\Common\\Annotations\\AnnotationException: "[Semantical Error] The class "Drupal\\Core\\Render\\Annotation\\RenderElement" is not annotated with @Annotation. Are you sure this class can be used as annotation? If so, then you need to add @Annotation to the _class_ doc comment of "Drupal\\Core\\Render\\Annotation\\RenderElement". If it is indeed no annotation, then you need to add @IgnoreAnnotation("RenderElement") to the _class_ doc comment of class Drupal\\contextual\\Element\\ContextualLinksPlaceholder." at /srv/www/drupal8/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationException.php line 54

Installation de Twig C

En visitant le tableau de bord d'administration (ou le status report), vous pourrez noter cet avertissement à propos de l'extension Twig C qui n'est pas disponible.

Twig C extension not available

Cette extension C pour Twig n'est pas indispensable mais elle apporte de substantielles améliorations sur les performances de Twig. Pourquoi donc s'en priver, quand on peut l'installer en quelques secondes.

Dans votre home directory, installez le paquet PHP Twig avec Composer.

composer require twig/twig:~1.0

Positionnez-vous dans le répertoire

cd vendor/twig/twig/ext/twig/

Puis lancez la compilation

phpize
./configure
make
sudo make install

Il ne vous reste plus qu'à rajouter l'extension twig.so dans les modules disponibles pour PHP.

sudo echo -e "extension=twig.so" > /etc/php5/mods-available/twig.ini

Et de redémarrer votre serveur web Apache2 ou PHP5-FPM selon votre configuration.

Installation de Drupal console

Pour en savoir plus sur Drupal Console et avoir un premier aperçu de sa puissance, je vous invite à lire ce billet Créer un module Drupal 8 en 30 secondes. Bref, Drupal Console est tout aussi indispensable pour qui veut développer sur Drupal 8 que Drush ou Composer. Console est un projet très actif et qui évolue rapidement. Il propose également maintenant d'intéragir avec votre site Drupal 8, comme par exemple le mettre en maintenance, etc. 

Pour installer Console, lancez cette commande (à noter que la variable phar.readonly doit être à off dans votre fichier /etc/php5/cli/php.ini)

curl -LSs http://drupalconsole.com/installer | php

Puis déplacez/renommer le fichier créé console.phar vers le répertoire /usr/local/bin pour le rendre accessible de partout sans avoir à saisir le chemin complet de console.

mv console.phar /usr/local/bin/drupal

Nous pouvons désormais utiliser console en lançant la commande drupal.

drupal list

vous renverra l'ensemble des options disponibles, qui sont également détaillées dans sa documentation en ligne.

Drupal 8 ready !

Vous disposez en quelques minutes d'un environnement disposant de tous les outils pour commencer à travailler efficacement sur Drupal 8 et bien sûr d'une installation de Drupal 8 toute fraiche. Ou tout simplement d'un environnement optimisé pour l'héberger ou le maintenir. Ce serait dommage de s'en passer non ?

Vous avez d'autres recommandations / astuces pour compléter cette checklist ? N'hésitez pas à les partager dans les commentaires. Merci.

Nota : Il est bien sûr tout aussi possible de simplement télécharger l'archive de Drupal 8 puis de la décompresser et la déposer sur son hébergement. Cette méthode bien que plus simple sera plus longue à réaliser, et reste bien souvent la seule méthode accessible sur un hébergement mutualisé.

Ajouter un commentaire