Installer Drupal sous lighttpd
Maintenant que nous avons un serveur web fonctionnel, nous pouvons déjà développer nos propres sites, mais si votre but est de publier du contenu, il est préférable d'utiliser une solution déjà existante. Il existe un grand nombre de solutions comme Joomla, Wordpress ou encore Drupal pour les plus connues.
Ayant choisi Drupal, je vais vous expliquer son installation sous Debian et, surtout, la configuration de lighttpd qui peux poser quelques problèmes.
Installation de Drupal
Il existe un paquet Drupal pour Debian, mais au niveau des applications, je préfère être à jour, surtout que la communauté est très active, il sera dommage de se priver des nombreuses corrections de bugs.
Nous allons donc télécharger la dernière version sur le site officiel, http://drupal.org/ et la décompresser :
# cd /var/www # wget http://ftp.drupal.org/files/projects/drupal-6.17.tar.gz # tar zxf drupal-6.17.tar.gz # mv drupal-6.17 drupal
Création de notre site
Drupal supporte le multi-sites, c'est à dire qu'il est possible de créer plusieurs sites avec une même installation de drupal. Nous allons donc créer un site, basé sur l'installation précédent, pour l'utilisateur gege2061.
Pour commencer, nous avons besoin de créer le squelette du site, c'est à dire créer des liens symboliques vers le coeur de Drupal. Comme il s'agit d'une étape répétitive, je me suis fabriqué un petit scripts très (trop) simple :
#! /bin/sh drupal=/var/www/drupal mkdir -p $1 cd $1 mkdir files ln -s $drupal/.htaccess ln -s $drupal/cron.php ln -s $drupal/includes ln -s $drupal/index.php ln -s $drupal/install.php ln -s $drupal/misc ln -s $drupal/modules ln -s $drupal/profiles ln -s $drupal/robots.txt ln -s $drupal/scripts mkdir sites cd sites ln -s $drupal/sites/all ln -s $drupal/sites/default cd .. ln -s $drupal/themes ln -s $drupal/update.php ln -s $drupal/xmlrpc.php
Il suffit de lancer le script en précisant le répertoire de destination :
$ sh install_drupal.sh /home/gege2061/public_html/
Et maintenant de créer notre premier site en copiant le répertoire sites/default :
$ cd /home/gege2061/public_html/sites/ $ mkdir gege2061.homecomputing.fr $ cp default/default.settings.php gege2061.homecomputing.fr/settings.php
Créer une base de données
Comme nous n'avons pas installé PhpMyAdmin (ou équivalent) pour gérer facilement notre base de données MySQL, il faut le faire en ligne de commande. Rien de bien compliqué, je vous rassure.
Commençons par nous connecter au serveur MySQL :
mysql -u root -p
Créons une nouvelle base de données pour notre site :
mysql> CREATE DATABASE drupal_db
Nous pourrions nous arrêter là, mais pour des questions de sécurité, je préfère créer un utilisateur par base de données avec les doits minimum :
mysql> CREATE USER gege2061 IDENTIFIED BY 'xxx'; mysql>GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER ON drupal_db.* TO 'gege2061'@'localhost' IDENTIFIED BY 'xxxx';
Pour finir la configuration de notre base, nous devons ajouter ces informations au fichier settings.php de Drupal :
db_url = 'mysql://gege2061:xxxx@localhost/drupal_db';
Pensez à remplacer xxxx par un mot de passe un minimum sérieux, même si notre serveur de base de données n'est accessible qu'en local.
Création d'un hôte virtuel
Avant de pouvoir lancer notre installation, il faut créer un hôte virtuel afin de faire correspondre notre URL, à savoir http://gege2061.homecomputing.fr/ au répertoire /home/gege2061/public_html/ (Drupal se chargera de trouver le bon répertoire dans sites/ pour la configuration).
Créons un nouveau fichier de configuration dans le répertoire /etc/lighttpd/conf-available/, par exemple 20-homecomputing.conf et y copier ceci :
$HTTP["host"] == "gege2061.homecomputing.fr" {
server.document-root = "/home/gege2061/public_html"
server.follow-symlink = "enable"
}
Il est bien sûr possible de faire plus compliqué, en particulier utiliser une expression régulière pour rediriger tous les sous-domaines vers un même répertoire, pour plus d'information, vous pouvez consulter la documentation de lighttpd.
Vous pouvez lancer l'installation de Drupal maintenant, mais vous ne pourrez pas utiliser les URL propre.
Utiliser les URL propres
Lighttpd n'étant pas capable de lire les fichiers .htaccess dédiés à Apache, nous devons les transformer afin des les ajouter à notre fichier de configuration 20-homecomputing.conf. Ce n'est pas un problème spécifiquement lié à Drupal, il faudra le faire pour toutes les applications proposant un fichier .htaccess, si cela vous semble pénible, c'est le prix à payer pour avoir de bonnes performances. Non, le problème ici c'est que le fichier .htaccess réécrit les URL dont le fichier n'existe pas. Cette fonctionnalité n'est présente qu'à partir des version 1.4.24 (url.rewrite-[repeat-]if-not-file) ce qui n'est pas le cas de la version actuelle sous Debian Lenny.
- Heureusement il est possible de contourner le problème à l'aide d'un script lua
- Lighttpd and a convenient way to support clean URLs.
Commencez par installer le module magnet pour lighttpd :
# apt-get install lighttpd-mod-magnet # lighty-enable-mod magnet
Ensuite téléchargez le script :
# cd /etc/lighttpd # wget http://more.zites.net/morefiles/lighty-drupal-lua-conf.tar.gz # tar xvzf lighty-drupal-lua-conf.tar.gz
Et ajoutez celle ligne dans le fichier 20-homecomputing.conf :
include_shell "./drupal-lua-conf.sh"
Maintenant vous pouvez lancer l'installation de Drupal en suivant la documentation officielle.