Drupal logo

Installation de Drupal

Dans ce premier billet technique, nous allons voir comment mettre en place un site sous Drupal dans un environnement de développement type localhost. Vous retrouverez un screencast récapitulatif en fin de post.

Pré-requis technique

Tout d’abord, l’environnement de travail. Vous aurez besoin:

Un serveur Web:

Drupal fonctionne avec Apache et IIS. Il est fortement conseillé d’utiliser Apache. En effet, c’est le plus répandu, le plus stable, et il est accessible à tous. Vous aurez besoin de la version 1.3 au minimum, Apache 2.x étant fortement recommandé. L’activation  de l’extension «mod_rewrite» vous permettra d’utiliser les cleans URLs, je vous recommande de le faire.

PHP:

PHP 4.3.5 requis, 5.2.x requis. La version 5.3 n’est pas encore supportée par Drupal 6, donc faites attention si vous utilisez la dernière version de WAMP qui utilise par defaut PHP 5.3, il vous faudra alors repasser en 5.2.9. A partir de Drupal 7, PHP 5.2.x ou plus seront les requis pour Drupal 7.
Le besoin en mémoire requis sont très variables: ils dépendent du nombre de modules que vous utilisez. Par defaut, cette valeur est le plus souvent fixée à 8Mo. Pour un site basique sans module ajouté, 16Mo suffiront pour Drupal 6, 32Mo pour Drupal 7. Cependant, je vous conseille de fixer dès maintenant la limite à 64Mo pour être tranquille par la suite. Si la quantité de mémoire est insuffisante, vous verrez une jolie page blanche lorsque vous essaierez par exemple de lister les modules installés. Cette valeur se règle dans le fichier php.ini . N’oubliez pas de redémarrer vos services après avoir modifié cette valeur.

Serveur de Base de Donnée:

Il est recommandé d’utiliser MySQL 4.1+ ou MySQL 5.0 avec Drupal 6, MySQL 5.0 obligatoire pour Drupal 7. L’utilisateur que vous allez créer pour interagir avec votre BDD devra impérativement disposer des droits SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER. Cependant pour vous assurer de ne pas être limité par votre base de donnée lors de l’utilisation de certains modules, je vous recommande de donner tous les privilèges à votre utilisateur (exceptés ceux d’administration que vous réglerez à votre convenance). Il vous faudra également régler la valeur de la variable max_allowed_packet à 16Mo, là encore pour éviter d’éventuels problèmes liés a une valeur par défaut de cette variable trop faible (1Mo par defaut)
Un petit mot sur PostgreSQL: utilisable à partir de la version 7.4, son usage est cependant déconseillé. Si le core de Drupal fonctionne correctement avec ce type de base, il n’en ai pas de même pour certains modules. Note technique pour ceux qui souhaitent toutefois l’utiliser sous windows avec PHP 5.2.6, il y a un bug, remplacez le fichier php_pgsql.dll par celui de la version 5.2.5 .

Les bases Oracle sont elles aussi utilisables(pas nativement), mais leur utilisation n’est pas recommandée pour les mêmes raisons que pgsql. Vous retrouverez plus d’infos ici et ici. Concernant les bases MS SQL, il semblerait qu’un patch permette leur utilisation, mais je ne me suis jamais penché sur le sujet. (Peut-être plus tard dans un billet :) )

Dans ces tutoriaux, nous travaillerons essentiellement en local, les solutions de type xAMP sont parfaites. Vous les trouverez ici:
MAMP: http://www.mamp.info/en/downloads/index.html
WAMP: http://www.wampserver.com/presentation.php
LAMP: ouvrez un terminal et entrez
sudo apt-get install apache2 apache2-doc mysql-server php5 libapache2-mod-php5 php5-mysql

Vous trouverez une doc d’installation complète d’un serveur LAMP à cette adresse:

http://doc.ubuntu-fr.org/lamp

Ce tutoriel complet devrait aussi vous aider:

http://www.lafermeduweb.net/billet/tutorial-creer-un-serveur-web-complet-sous-debian-1-apache-160.html

L’installation:

Tout d’abord, après avoir vérifié que l’on a bien un environnement de travail fonctionnel, rdv sur sur http://drupal.org/project/drupal . C’est ici que vous trouverez la dernière version de Drupal disponible.
Dezippez le tar.gz dans le dossier htdocs ou www de votre environnement de travail. Hors production, dezippez le dans un dossier à l’intérieur de htdocs pour ne pas monopoliser votre serveur sur un seul projet. En production, les fichiers doivent être dézippés à la racine de votre Virtual Host.
Connectez vous à votre site, vous arriverez sur la page d’installation.Premier ecran de l'installation de Drupal

Sélectionnez la première option (nous verrons la traduction plus tard). Premier obstacle: il faut copier le fichier sites/default/default.settings.php en sites/default/settings.php . Attention à bien faire COPIER et non renommer. En effet, ce fichier settings.php est utilisé pour définir de nombreux paramètres (chemin d’accès à la base de donnée notamment) , celui par défaut est utilisé lors de l’installation, sinon c’est celui de votre site qui sera utilisé. Voici la façon dont le fichier est recherché pour un site installé dans http://www.drupal.org/mysite/test/:

1. sites/www.drupal.org.mysite.test
2. sites/drupal.org.mysite.test
3. sites/org.mysite.test

4. sites/www.drupal.org.mysite
5. sites/drupal.org.mysite
6. sites/org.mysite

7. sites/www.drupal.org
8. sites/drupal.org
9. sites/org

sites/default

Pour des raisons de sécurité, il est en read-only (Drupal le modifie quand il a besoin, et remet les droits read-only après utilisation).

Sur la page suivante, on vous demande les paramètres de connexion à votre base de donnée. Il faut donc créer cette base. Pour ce faire, deux possibilités, phpmyadmin ou un gestionnaire de bdd externe. Personnellement j’utilise l’excellent Navicat for MySQL, beaucoup plus clair et simple que phpmyadmin. Cependant, tout ce qui est fait avec navicat peut l’être par phpmyadmin.Base de donnée originale
Nous allons dans un premier temps créer une base, que nous appellerons drupalbdd. Selectionnez bien utf-8 comme jeu de caractère. Puis nous créons un utilisateur, drupalbddadmin qui a les droits requis sur drupalbdd. On défini le mot de passe, et c’est tout ce que nous aurons à faire, toute la construction de notre base de donnée est gérée par Drupal comme vous pourrez le voir sur l’écran suivant. Enfin, dernière partie: on défini quelques informations et le tour est joué.
Afin d’utiliser les « Cleans URLs» , il ne reste plus qu’à vérifier que l’extension «mod_rewrite» est bien activée.
Avec MAMP, il est activé par défaut, sous WAMP, clic gauche sur l’icône WAMP, allez sur Apache puis module, et sélectionnez «rewrite_module». Sous linux, il faut simplement décommander les lignes «LoadModule rewrite_module modules/mod_rewrite.so» et «AddModule mod_rewrite.c» (selon la version d’apache utilisée) dans votre fichier httpd.conf ou utiliser la commande sudo a2enmod rewrite.
Vous pouvez suivre les méthodes indiquées dans la vidéo qui suit.
Si l’indicateur était rouge, rechargez la page après ces opérations et le problème devrait être réglé.
Dernier point, comme je vous l’ai dit dans l’introduction à Drupal, faîtes attention à bien allouer une quantité de mémoire suffisante à PHP. Définissez le au minimum à 64Mo pour être tranquille. WAMP et apache2 définissent automatiquement 128Mo, mais MAMP  set cette valeur à 8Mo, ce qui est bien trop peu et rendra très vite le site inutilisable.
Pensez bien à relancer votre serveur apache pour que les paramètres soient bien pris en compte (en cliquant sur les boutons pour MAMP et WAMP, avec la commande /etc/init.d/apache2 restart sous Linux

Voila, votre site est désormais bien mis en place. Dans le prochain tutoriel, nous verrons les opérations basiques que l’on peut effectuer sur notre installation toute fraîche.

Le résumé en vidéo:

Note: si vous souhaitez effectuer une installation multi-site, ne suivez pas ce tutoriel car l’installation diffère légèrement. Cela fera l’objet d’un autre tutoriel disponible prochainement.