Retrouvez cet article dans : Linux Pratique Hors série 5
LAMP est un acronyme signifiant Linux+Apache+MySQL+PHP, le quatuor gagnant des Logiciels web libres. Nous allons, en guise de pré-requis aux articles suivants, voir comment installer Apache, MySQL et PHP sur votre distribution Linux (ou FreeBSD, MacOS X ou autre).
Introduction
Avant de nous lancer dans les installations, vérifions d'abord nos connaissances. Apache, qu'est-ce ? C'est un serveur web. C'est un programme qui répond aux requêtes formulées suivant le protocole HTTP. Vous avez déjà été en contact avec celui-ci lorsque vous avez écrit une URL dans votre navigateur afin d'obtenir la page web correspondante. En simplifiant, votre navigateur a alors généré une requête HTTP à destination d'un serveur web pour obtenir le fichier HTML correspondant et vous l'afficher. Nous n'avons pas besoin d'en savoir plus sur ce protocole pour continuer.
Certaines requêtes ne visent pas forcément à obtenir un fichier HTML. En effet, nombreuses ont pour objet d'exécuter un programme sur le serveur, dont le résultat vous est renvoyé au format HTML pour visualisation dans votre navigateur. Parmi ces programmes, beaucoup sont écrits en langage PHP et doivent être interprétés. Votre serveur web doit donc disposer d'un interpréteur PHP qui s'appelle... PHP ! Lorsqu'il reçoit une requête pour exécuter un script PHP, le serveur web le fait exécuter à l'interpréteur, récupère le résultat généralement au format HTML (mais aussi parfois des images ou même du texte brut), et renvoie ce résultat au navigateur.
Pour aller plus loin, certains scripts PHP font appel à un moteur de bases de données pour stocker et récupérer des données. La sélection naturelle dans la communauté des Logiciels libres a favorisé MySQL (au détriment de PostgreSQL qui n'en est pas moins bon). Aussi, MySQL est devenu un pré-requis nécessaire pour de nombreuses applications web.
Dans ce qui suit, nous proposerons des procédures applicables sur Ubuntu 5.10, la plate-forme ayant servi à l'auteur pour écrire cet article. Des tableaux de correspondance avec Mandriva aideront le lecteur à s'y retrouver sur sa distribution.

Apache
Installation
L'installation s'effectue avec votre gestionnaire de paquet. Veuillez installer apache2 et apache2-common ainsi que leurs pré-requis (voir Tableau 1).
Configuration
Pour une utilisation temporaire, aucune configuration n'est nécessaire. Mais nous allons faire le nécessaire pour une installation plus durable.
Pour cela, nous devons déplacer la racine du site et la mettre en lieu sûr, là où vous ne l'écraserez pas par mégarde en réinstallant Linux ou via des tests douteux. Nous allons choisir le répertoire /opt/www comme racine. Vous y créerez un répertoire /opt/www/htdocs pour les pages web. Faites appartenir ces fichiers et répertoires au même utilisateur, celui qui administrera le site web : www-data. Mais vous pouvez également choisir un autre compte si vous jugez cela préférable.

 Dans le répertoire /opt/www/htdocs, créez ou copiez un fichier index.html, par exemple, avec le contenu suivant :
<html> Â Â Â <head> Â Â Â Â Â Â <title>Accueil</title> Â Â Â </head> Â Â Â <body> Â Â Â Â Â Â <p>En cours d'installation...</p> Â Â Â </body> </html>
Vous allez maintenant modifier la configuration du serveur /etc/apache2/apache2.conf. Vous avez besoin des droits administrateur pour cela (avec le compte root ou avec sudo). Ce fichier inclut de nombreux fichiers dont /etc/apache2/sites-enabled/000-default qui contient ce qui nous intéresse (voir Tableau 3).

 Lorsque vous avez lancé votre éditeur de texte, recherchez le mot-clé DocumentRoot. Il indique un répertoire, par exemple /var/www. Vous devez alors remplacer toutes les occurrences de ce nom de répertoire par /opt/www/htdocs. Sauvegardez le fichier sans effectuer d'autre modification.
Pour prendre en compte la modification, vous pouvez arrêter et relancer le serveur web. En ligne de commande, et avec le compte root, exécutez ceci sur Ubuntu :
# /etc/init.d/apache2 stop # /etc/init.d/apache2 start
Sur Mandriva :
# /etc/init.d/httpd stop # /etc/init.d/httpd start
Vous pouvez également utiliser l'interface d'administration de votre distribution pour la gestion des services.
Test de fonctionnement
Si tout va bien, vous pouvez lancer votre navigateur et aller visiter l'adresse http://localhost/. Normalement, vous devriez voir apparaître la page index.html que vous avez copiée dans /opt/www/htdocs.
PHP
Installation
L'installation de PHP est relativement simple : installez PHP5. Installez évidemment aussi les dépendances qui devraient vous être demandées. C'est tout !
Configuration
Votre distribution est normalement bien faite : vous n'avez pas à configurer quoi que ce soit. Vous vérifierez néanmoins que le fichier de configuration du serveur web (/etc/apache2/apache2.conf), à la directive DirectoryIndex, contient bien au moins index.html et index.php. Mettez-les dans l'ordre de priorité que vous préférez. Puis relancez le serveur web.
Dans quelques cas extrêmement rares (en particulier pour ceux qui installent à partir des sources), les lignes suivantes pourraient éventuellement manquer à la configuration du serveur web :
LoadModule php5_module /usr/lib/apache2/modules/libphp5.so
et
AddType application/x-httpd-php .php .phtml .php3 AddType application/x-httpd-php-source .phps
C'est ainsi que nous indiquons au serveur web l'emplacement de l'interpréteur PHP et qu'il doit s'en servir pour les fichiers d'extension .php, .phtml, .php3 ou, pour les sources, .phps. Comme vous le savez probablement déjà , l'extension privilégiée pour les fichiers PHP est .php.
Test de fonctionnement
En guise de test de fonctionnement, nous allons afficher l'environnement de travail de PHP avec un script PHP faisant appel à phpinfo(). Pour cela, éditez par exemple le fichier /opt/www/htdocs/test.php :
<?php print phpinfo(); ?>
Maintenant, sur http://localhost/test.php, vous devriez visualiser une longue page remplie de ce qui ressemble à des variables d'environnement et leur contenu. Cela signifie que PHP fonctionne.

Fig. 1 : La fonction phpinfo() permet d'afficher toutes les informations relatives à la version de PHP installée sur votre système.
 Il ne nous reste plus qu'à nous assurer que PHP est capable de parler la langue de MySQL. Pour cela, toujours sur cette page, recherchez ce qui pourrait correspondre à MySQL. Vous devriez trouver un titre « MySQL » suivi d'un tableau dont la première ligne serait « MySQL Support | enabled ».

 Fig. 2 : On vérifie que le module MySQL est bien disponible...
Si tel n'est pas le cas, il vous manque probablement le module MySQL. Avec votre gestionnaire de paquets, installez php5-mysql. Rechargez la page après un arrêt/relance du serveur web si nécessaire, et vous devriez constater que PHP supporte maintenant MySQL.
MySQL
Installation
Au tour de MySQL : installez les paquets mysql-server et mysql-client. Suivant votre distribution, il se peut que le client ne soit pas une dépendance du serveur. Dans ce cas, nous conseillons quand même son installation.
Configuration
Les distributions font bien leur travail : il n'y a rien à configurer pour que cela fonctionne.
Test de fonctionnement
Lancez la commande mysql -u root. Vous devriez obtenir un nouveau prompt :
$ mysql -u root Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 26 to server version: 4.1.12-Debian_1ubuntu3-log Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql>
Ce prompt signifie que cela marche. Vous pouvez quitter avec la commande quit. Remarquez au passage que vous étiez administrateur de MySQL, avec tous les droits, et que vous n'avez pas fourni de mot de passe...
Changez le mot de passe administrateur
Nous vous conseillons de changer immédiatement le mot de passe du super-utilisateur de MySQL, car, par défaut, il est vide. Sachez que cet utilisateur est root (même sur Windows) et qu'il n'a rien à voir avec le super-utilisateur du système, même s'il s'appelle root également. En d'autres termes, le mot de passe que nous allons mettre peut être différent de celui du compte root de la machine.
Lancez la commande mysqladmin password 'mot de passe en clair'. Changez bien évidemment le mot de passe, que vous tapez en clair, et qui s'affichera lorsque vous le tapez. Veillez bien à éviter les regards indiscrets ! Après avoir validé, vous devrez ajouter l'option -p pour vous connecter à nouveau (mysql -u root -p) et donner le mot de passe.
Installation d'une application web
L'installation
L'installation d'une application web peut s'effectuer de différentes façons. L'une consiste à utiliser votre gestionnaire de paquets. Dans ce cas, vous installez la version de votre distribution et utilisez son paramétrage. Avantage : cela fonctionne immédiatement et vous n'avez pas à vous préoccuper des mises à jour. Inconvénients : vous n'avez pas forcément accès à la dernière version stable et il vaut mieux ne pas trop modifier la configuration par défaut proposée par la distribution (sous peine d'avoir des difficultés de mise à jour). Aussi, tout en vous laissant le choix, nous vous proposons une façon alternative d'installer une application web. Nous choisissons phpMyAdmin pour illustrer nos propos.
Si vous avez suivi l'installation du serveur web, vous devriez avoir un répertoire /opt/www. C'est dans celui-ci que nous allons installer nos applications. En général, la première étape consiste à décompacter le paquet. Voici ce que cela donne avec phpMyAdmin :
 $ su - www-data Password: ********* $ cd /opt/www $ ls -l total 4 drwxr-xr-x 2 www-data www-data 4096 Apr 19 18:48 htdocs $ tar xzf /tmp/phpMyAdmin-2.8.0.3.tar.gz $ ls -l total 8 drwxr-xr-x 2 www-data www-data 4096 Apr 19 18:48 htdocs drwxr-xr-x 9 www-data www-data 4096 Apr 6 14:43 phpMyAdmin-2.8.0.3 $
Remarque : Si vous ne connaissez pas le mot de passe du compte www-data, le plus simple est de passer root (sudo bash sur Ubuntu, su - sur Mandriva), puis de prendre l'identité www-data : su - www-data.
Le répertoire /opt/www/phpMyAdmin-2.8.0.3 n'est pas connu du serveur web. Nous devons le lui déclarer. Les distributions modernes proposent un mécanisme sympathique pour cela : au lancement, le serveur web prend en compte tous les fichiers contenus dans un certain répertoire. Il nous suffit de créer le fichier adéquat, que nous allons appeler phpMyAdmin-2.8.0.3.conf, et de le placer au bon endroit, dans le répertoire /etc/apache2/conf.d. Sur les distributions ne disposant pas d'un tel répertoire, vous pouvez ajouter en fin de fichier de configuration d'Apache la directive suivante :
Include /le/chemin/adequat/phpMyAdmin-2.8.0.3.conf.
Ce fichier aura le contenu suivant :
Alias /phpmyadmin "/opt/www/phpMyAdmin-2.0.8.3"
<Directory "/opt/www/phpMyAdmin-2.0.8.3">
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>
Décryptons ce fichier. La première ligne est un alias, qui va transformer /phpmyadmin en le chemin correspondant dans les URL. C'est en le modifiant que vous pouvez faire cohabiter plusieurs versions d'une même application web. Les autres lignes définissent les droits et quelques options du répertoire indiqué en deuxième ligne. Parmi les droits, vous pouvez être amené à modifier AllowOverride et remplacer None par AuthConfig. C'est ainsi que vous protégez un répertoire par mot de passe comme nous le verrons plus loin.
Relancez le serveur web et allez visiter l'URL http://localhost/phpmyadmin/. L'application est installée. Vous devez en général la configurer, mais cette étape varie d'une application à l'autre. Renseignez-vous sur la façon de faire en lisant la documentation. Pour phpMyAdmin, nous voyons cela dans un article suivant.
La désinstallation
L'intérêt de cette méthode d'installation est qu'il est facile de désactiver le logiciel sans le désinstaller : vous n'avez qu'à supprimer le fichier correspondant à l'application dans /etc/apache2/conf.d. Ou plutôt que de le supprimer, mettez-le à un endroit sûr afin de pouvoir l'y remettre si vous vouliez réactiver l'application. Relancez le serveur web et l'application est désactivée.
L'intérêt de cette méthode est également la facilité de désinstallation. Désactivez-la comme ci-dessus. Et supprimez également son répertoire d'installation (dans /opt/www). Relancez le serveur web et il n'y aura plus de trace de cette application.
Activation/désactivation des services
Aux serveurs web et de base de données correspondent des services. Ceux-ci sont probablement lancés au démarrage. Cela est souhaitable si vous voulez y avoir accès à tout moment. Cependant, il est possible que vous préfériez activer ces services manuellement, selon vos besoins, afin de ne pas utiliser les ressources de votre machine inutilement.

Fig. 3 : Fenêtre de réglage des services sous Ubuntu 5.10, accessible via le menu Système -> Administration -> Services.
Pour cela, rendez-vous dans le panneau de configuration des services de votre distribution. Sur Ubuntu 5.10, le fonctionnement de ce panneau est un peu étrange. En effet, vous ne pouvez que sélectionner ou désélectionner un service. En le sélectionnant, vous le lancez. En le désélectionnant, vous l'arrêtez. Si vous cliquez sur « Valider », ce que vous venez de faire sera pris en compte au prochain reboot. Si vous optez pour « Annuler », vous n'annulez pas ce que vous venez de faire, mais au prochain reboot, tout se passera comme si vous n'aviez rien fait.
Illustration : Désélectionnez le service Apache2. Cela arrête le serveur web. Cliquez ensuite sur « Valider », ce qui ferme le panneau de configuration des services. Le serveur est effectivement arrêté et ne se lancera pas au prochain boot. Lancez à nouveau le panneau des services, et sélectionnez à nouveau le service Apache2. Le serveur web se lance. Choisissez « Annuler », ce qui ferme le panneau. Résultat : Votre serveur web reste lancé. Par contre, au prochain boot, il restera éteint et vous devrez le lancer manuellement.
Pour les autres distributions et, espérons-le, les versions d'Ubuntu à venir, ce panneau est plus évident à utiliser en indiquant clairement les différentes actions possibles.
En ligne de commande, lancer ou arrêter un service est assez simple, et nous l'avons déjà fait plus haut pour Apache : lancez-le avec /etc/init.d/apache2 start et arrêtez-le avec /etc/init.d/apache2 stop. Pour le serveur MySQL, remplacez apache2 par mysql. Il vous faut évidemment les droits administrateur, avec sudo sur Ubuntu et avec su - sur les autres.
Conclusion
Nous voilà avec un serveur LAMP fonctionnel. Il ne vous reste plus qu'à installer toutes les applications web qui vous passeront par l'esprit pour jouer avec, ou les utiliser de façon plus sérieuse.
Références :
- Apache : http://httpd.apache.org/
- PHPÂ : http://www.php.net/
- MySQLÂ : http://www.mysql.org/
- Les forums d'Apache France : http://www.apachefrance.com/Forums/
Retrouvez cet article dans : Linux Pratique Hors série 5

