LAMP
LAMP est un acronyme désignant un ensemble de logiciels libres permettant de construire des serveurs de sites web. L'acronyme original se réfère aux logiciels suivants :
- « Linux », le système d'exploitation ( GNU/Linux ) ;
- « Apache », le serveur Web ;
- « MySQL ou MariaDB », le serveur de base de données ;
- À l'origine[1], « PHP », « Perl » ou « Python », les langages de script.
Même si les auteurs de chacun de ces programmes ne se sont pas coordonnés pour construire des plates-formes LAMP, cette combinaison de logiciels s'est popularisée du fait du faible coût de l'ensemble et de la présence de tous ces composants dans la plupart des distributions GNU/Linux.
Cet acronyme a été inventé par Michael Kunze qui l'a utilisé pour la première fois en 1998 dans le magazine allemand c't. L'article en question voulait démontrer qu'un ensemble de logiciels libres pouvait concurrencer les offres commerciales disponibles[2].
Architecture
Les rôles de ces quatre composants sont les suivants :
- Linux assure l'attribution des ressources aux autres composants (Rôle d'un Système d'exploitation ou OS pour Operating System) ;
- Apache est le serveur web « frontal » : il est « devant » tous les autres et répond directement aux requêtes du client web (navigateur) ;
- MySQL et son fork MariaDB sont des systèmes de gestion de bases de données (SGBD). Ils permettent de stocker et d'organiser des données ;
- le langage de script PHP permet la génération de pages web dynamiques et la communication avec le serveur MySQL/MariaDB.
Tous les composants peuvent être situés :
- sur une même machine ;
- sur deux machines, généralement Apache associé au langage de script d'un côté et les moteurs de bases de données MySQL/MariaDB de l'autre ;
- sur de nombreuses machines pour assurer la haute disponibilité (répartition de charge et/ou failover).
Variantes
De même que Python ou Perl peuvent remplacer PHP puisqu'ils commencent par la même lettre, certaines combinaisons utilisent le P pour PostgreSQL (qui remplace MySQL/MariaDB) et font désigner les composants mod_perl ou mod_python par le M. D'autres acronymes sont apparus pour nommer des plateformes de serveurs internet :
- LAMA : Linux Apache MySQL/MariaDB ASP,
- WAMP : Windows Apache MySQL/MariaDB PHP,
- MAMP : Macintosh Apache MySQL/MariaDB PHP,
- SAMP : Solaris Apache MySQL/MariaDB PHP,
- LAPP : Linux Apache PostgreSQL PHP,
- WASP : Windows Apache SQLServer PHP,
- HAMP[3] : Hurd Apache MySQL/MariaDB PHP.
- *AMP : de manière plus générale, l'acronyme *AMP (star-AMP) signifie AMP sur n'importe quelle plate-forme (LAMP, WAMP, MAMP, XAMP...)
- LEMP : Linux Nginx MySQL/MariaDB PHP.
Par ailleurs le projet GNU suggère l'emploi de l'acronyme GLAMP dans sa liste des « termes prêtant à confusion, que vous devriez éviter »[4], cela pour les mêmes raisons que celles qui animent le débat Linux ou GNU/Linux.
Références
- (en) Dale Dougherty, « LAMP: The Open Source Web Platform », ONLamp,
- « c't 12/98, page 230 - Freeware Web Publishing System »
- HAMP: Hurd, Apache, MySQL, and PHP, sur le site de Arch Hurd.
- Projet GNU : Liste des termes