On dif­fé­ren­cie deux grands types de sites Web : les sites statiques et les sites dy­na­miques. Les sites statiques pré­sen­tent des documents HTML hébergés sur des serveurs Web, dont les contenus restent inchangés et que les uti­li­sa­teurs peuvent à tout moment charger. Le contenu d’une page Web dynamique va au contraire varier selon les dif­fé­rentes ca­rac­té­ris­tiques à la demande des uti­li­sa­teurs. Un site dynamique a l’avantage de proposer des ac­tua­li­sa­tions ré­gu­lières faciles à intégrer et est très apprécié pour les sites d’in­for­ma­tions, de pré­vi­sions météo ou encore ceux qui publient les cours de la bourse par exemple. Les sites Web dy­na­miques né­ces­si­tent cependant une in­fras­truc­ture par­ti­cu­lière, composée d’un système d’ex­ploi­ta­tion, d’un serveur Web, d’un système de gestion de base de données et d’un logiciel de langage de script. Un serveur dit LAMP réunit justement ces quatre com­po­sants.

Qu’est-ce qu’un serveur LAMP ?

L’acronyme LAMP a été construit avec les premières lettres de quatre logiciels : Linux, Apache, MySQL et PHP. Grâce à cet ensemble de logiciels, il est possible de créer et d’héberger un site Web dynamique. Ces dif­fé­rents com­po­sants cons­ti­tuent cette com­bi­nai­son bien connue par les uti­li­sa­teurs, appelée LAMP.

En tant que système d’ex­ploi­ta­tion, Linux constitue la base de cet ensemble, sur laquelle opère le serveur Web Apache. Ce dernier ne peut pas in­ter­pré­ter de contenus dy­na­miques car c’est là le rôle du langage de script PHP. Pour cette raison, il va envoyer le code source cor­res­pon­dant contenant les in­for­ma­tions sur les actions des visiteurs du site au serveur PHP. Ce dernier va accéder à la base de données MySQL.  Le résultat va être renvoyé au serveur Apache pour ap­pa­raître ensuite sur le na­vi­ga­teur Internet de ces visiteurs. 

Les serveurs LAMP sont très appréciés car ils sont très abor­dables et dis­po­nibles ra­pi­de­ment. Cependant, ces dif­fé­rents com­po­sants peuvent être remplacés par d’autres logiciels com­pa­rables. Les systèmes d’ex­ploi­ta­tion Windows (WAMP pour Windows, Apache, MySQL et PHP) et Mac OS X (MAMP) peuvent par exemple remplacer l’uti­li­sa­tion de Linux.  Le serveur Web nginx est aussi souvent utilisé à la place d’Apache. Parmi les ges­tion­naires de base de données on trouve le plus souvent MySQL et MariaDB.  En ce qui concerne les logiciels de scripts on peut citer Perl, Ruby ou encore Python.

Comment installer un serveur LAMP ?

Avant de commencer l’ins­tal­la­tion d’un serveur LAMP, il convient de clarifier certaines choses en amont. Tout d’abord, il est important que votre matériel ait la capacité né­ces­saire pour l’ins­tal­la­tion et l’uti­li­sa­tion de l’ensemble des logiciels LAMP. Un système LAMP n’exige pas les meil­leures per­for­mances du marché. Toutefois, un système très per­for­mant pourrait être né­ces­saire en fonction du contenu qui doit être livré aux visiteurs. Les projets à forte puissance de calcul sont par exemple les espaces de stockage de données en ligne ou les services de streaming. De plus, le trafic estimé ou la cir­cu­la­tion de données calculée doivent y être intégrés.

Si le matériel est suf­fi­sam­ment puissant, il faut par la suite se décider pour l’une des nom­breuses dis­tri­bu­tions Linux exis­tantes. Si le choix se fait par exemple entre Red Hat, openSUSE, Debian, Ubuntu ou CentOS, on dépend dans tous les cas d’un savoir-faire Linux plus général pour l’uti­li­sa­tion des pro­grammes du serveur LAMP.

Les ins­truc­tions qui suivent décrivent l’ins­tal­la­tion des quatre com­po­sants d’un serveur LAMP Ubuntu.

Etape 1 : le système d‘ex­ploi­ta­tion

Ubuntu, comme beaucoup d’autres variantes Linux, est un logiciel open source gratuit et fa­ci­le­ment dis­po­nible sur le Web. Les étapes ci-dessous vous per­met­tront d’installer ce système d’ex­ploi­ta­tion basé sur Debian :

  1. Té­lé­char­ger ou acheter une édition du serveur Ubuntu sur la page d’Ubuntu. Il faut ensuite en­re­gis­trer ou graver le fichier ISO res­pec­ti­ve­ment sur une clé USB ou sur un CD ;
  2. Lancer le système depuis le CD ou la clé USB ;
  3. Choisir la langue puis démarrer l’ins­tal­la­tion du serveur ;
  4. Indiquer dans les options la langue, le type de clavier, le fuseau horaire, les con­fi­gu­ra­tions du réseau, un nom d’hôte et un mot de passe ;
  5. Con­fi­gu­rer le disque dur ;
  6. Le programme d’ins­tal­la­tion scanne ensuite le CD à la recherche de paquets de logiciels et d’options de mises à jour. Au cours de cette étape, veillez à ce qu’aucune mise à jour au­to­ma­tique ne soit installée ;
  7. Enfin, le système doit être redémarré et la commande suivante doit être saisie dans la ligne de commandes :
sudo apt-get update

L’ins­tal­la­tion d’Ubuntu est main­te­nant terminée et les autres com­po­sants de l’ensemble LAMP sont prêts à être con­fi­gu­rés.

Etape 2 : le serveur Web

Si l’ins­tal­la­tion du serveur Web Apache n’a pas encore été établie lors de l’ins­tal­la­tion d’Ubuntu, il peut à tout moment être mis en place en ren­seig­nant la commande suivante :

sudo apt-get install apache2

Vérifiez ensuite le succès de l’ins­tal­la­tion d’Apache 2 (« 2 » pour signifier que la version est actuelle), dans lequel on va entrer depuis le na­vi­ga­teur la page Web http://localhost/ ou bien l’IP de l’hôte.  Le message « It works! » apparaît et la con­fi­gu­ra­tion peut alors commencer. Les adap­ta­tions suivantes doivent être prises en compte :

  1. Certes, KeepAlive améliore la vitesse du site Web pour l’uti­li­sa­teur, mais accapare aussi une quantité im­por­tante de mémoire vive. C’est pourquoi vous devriez si né­ces­saire sé­lec­tion­ner dans le fichier principal de con­fi­gu­ra­tion /etc/apache2/apache2.conf « KeepAlive Off ».
  2. Le module multi-processus (MPM) d’Apache le plus courant est Event tandis que PHP utilise le module prefork. On peut trouver le fichier mpm_prefork dans /etc/apache2/mods-available et les données doivent être adaptées comme indiqué ci-dessous :
<IfModule mpm_prefork_module>
StartServers              2
MinSpareServers           6
MaxSpareServers           12
MaxRequestWorkers         39
MaxConnectionsPerChild    3000
</IfModule>
  1. Dans un second temps, il faut éteindre le module Event et allumer le module Prefork.
sudo a2dismod mpm_event
sudo a2enmod mpm_prefork
  1. Pour finir, le serveur doit être redémarré :
sudo service apache2 restart

Etape 3 : la base de données

Le système de gestion de base de données MySQL opère en tant que serveur sur lequel plusieurs bases de données peuvent être créées. Pour chaque base de données, divers tableaux sont ajustés. Un ou plusieurs clients envoient des requêtes au serveur MySQL qui s’installe grâce à la commande suivante :

sudo apt-get install mysql-server

Il est possible d’assigner un mot de passe à l’uti­li­sa­teur root MySQL pendant l’ins­tal­la­tion, ce qui est fortement re­com­mandé. L’étape suivante consiste à maximiser la sécurité de MySQL. Le programme MySQL Secure propose des options per­met­tant de modifier votre mot de passe, supprimer des comptes uti­li­sa­teurs anonymes, des bases de données test ou encore tous les iden­ti­fiants racine, qui ne passent pas par l’hébergeur local. La commande d’ins­tal­la­tion est la suivante :

sudo mysql_secure_installation

Pour créer une base de données, on entre le code suivant dans MySQL :

mysql -u root -p

Ensuite, une base de données incluant des uti­li­sa­teurs ayant des droits d’accès peut être créée :

create database webdata;
grant all on webdata.* to « utilisateur » identified by « mot de passe »;

Etape 4 : le logiciel de script

La dernière étape de l’ins­tal­la­tion ajoute à cet ensemble LAMP le langage de script PHP et une de ses ex­ten­sions: PEAR (PHP Extension and Ap­pli­ca­tion Re­po­si­tory), une col­lec­tion de bi­blio­thèques de fonctions PHP. L’ins­tal­la­tion de cette dernière s’effectue avec la commande suivante :

sudo apt-get install php5 php-pear

L’ins­tal­la­tion d’un outil de com­pa­ti­bi­lité de MySQL avec PHP5 en vaut la peine et s’effectue par cette commande :

sudo apt-get install php5-mysql

Une fois l’ins­tal­la­tion terminée, il faut modifier le fichier de con­fi­gu­ra­tion PHP, se trouvant dans /etc/php5/apache2/php.ini, de la manière suivante :

error_reporting = E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR
error_log = /var/log/php/error.log
max_input_time = 30

Grâce à cela, l’uti­li­sa­teur recevra des rapports d’erreur per­ti­nents et bé­né­fi­ciera d’une meilleure per­for­mance. De plus, il est possible d’en­re­gis­trer ces messages d’erreur dans error.log. Enfin, il ne reste plus qu’à créer le ré­per­toire log pour PHP et donner les droits de pro­prié­tés au serveur Apache :

sudo mkdir /var/log/php
sudo chown www-data /var/log/php

Relancer Apache permettra la fi­na­li­sa­tion de l’ins­tal­la­tion de l’ensemble LAMP:

sudo service apache2 reload

Ensemble LAMP : logiciel open source pour tout projet Web

L’avantage des logiciels open source ne réside pas seulement dans le fait qu’ils soient gratuits dans la majorité des cas. Un autre plus est la pos­si­bi­lité pour n’importe qui d’accéder au code de dé­ve­lop­pe­ment. Ainsi, n’importe quel uti­li­sa­teur peut « bricoler » ce logiciel et dé­ve­lop­per sa propre extension. Au contraire des logiciels pro­prié­taires, qui proposent des services de support souvent payants, l’absence d’as­sis­tance technique ne pose pas de problèmes pour un uti­li­sa­teur ex­pé­ri­menté dans la mesure où la com­mu­nauté des logiciels open source facilite gran­de­ment leur uti­li­sa­tion.

Installer un serveur LAMP en vaut la peine, non seulement en raison de la flexi­bi­lité des logiciels et mais aussi de leur faible prix, si ce n’est leur gratuité. Un avantage de taille réside dans la très bonne com­pa­ti­bi­lité des dif­fé­rents com­po­sants de l’ensemble LAMP et per­met­tant de très bons résultats.  L’uti­li­sa­tion d’un serveur LAMP permet aussi bien l’ex­ploi­ta­tion d’un site statique que d’un site dynamique. Le logiciel Wiki MediaWiki, avec lequel est exploité Wikipedia, est par exemple développé sur un système LAMP.

Aller au menu principal