LAMP is an acronym for a
solution stackIn computing, a solution stack is a set of software subsystems or components needed to deliver a fully functional solution, e.g. a product or service....
of
freeFree software, software libre or libre software is software that can be used, studied, and modified without restriction, and which can be copied and redistributed in modified or unmodified form either without restriction, or with minimal restrictions only to ensure that further recipients can also...
, open-source software, originally coined from the first letters of
LinuxLinux is a generic term referring to Unix-like computer operating systems based on the Linux kernel. Their development is one of the most prominent examples of free and open source software collaboration; typically all the underlying source code can be used, freely modified, and redistributed,...
used for the operating system,
Apache HTTP ServerThe Apache HTTP Server, commonly referred to as Apache , is a web server notable for playing a key role in the initial growth of the World Wide Web. In 2009 it became the first web server to surpass the 100 million web site milestone...
,
MySQLMySQL is a relational database management system which has more than 6 million installations. MySQL stands for "My Structured Query Language". The program runs as a server providing multi-user access to a number of databases...
(database software), and
PHPPHP, or PHP: Hypertext Preprocessor, is a widely used, general-purpose scripting language that was originally designed for web development, to produce dynamic web pages. It can be embedded into HTML and generally runs on a web server, which needs to be configured to process PHP code and create web...
(web scripting language), principal components to build a viable general purpose
web serverThe term web server or webserver can mean one of two things:# A computer program that is responsible for accepting HTTP requests from clients , and serving them HTTP responses along with optional data contents, which usually are web pages such as HTML documents and linked objects .# A computer that...
.
The precise combination of software included in a LAMP package may vary, especially with respect to the web scripting software, as PHP may be replaced by
PerlPerl is a high-level, general-purpose, interpreted, dynamic programming language. Perl was originally developed by Larry Wall, a linguist working as a systems administrator for NASA, in 1987, as a general-purpose Unix scripting language to make report processing easier. Since then, it has undergone...
or
PythonPython is a general-purpose high-level programming language. Its design philosophy emphasizes code readability. Python claims to "[combine] remarkable power with very clear syntax", and its standard library is large and comprehensive...
.
LAMP is an acronym for a
solution stackIn computing, a solution stack is a set of software subsystems or components needed to deliver a fully functional solution, e.g. a product or service....
of
freeFree software, software libre or libre software is software that can be used, studied, and modified without restriction, and which can be copied and redistributed in modified or unmodified form either without restriction, or with minimal restrictions only to ensure that further recipients can also...
, open-source software, originally coined from the first letters of
LinuxLinux is a generic term referring to Unix-like computer operating systems based on the Linux kernel. Their development is one of the most prominent examples of free and open source software collaboration; typically all the underlying source code can be used, freely modified, and redistributed,...
used for the operating system,
Apache HTTP ServerThe Apache HTTP Server, commonly referred to as Apache , is a web server notable for playing a key role in the initial growth of the World Wide Web. In 2009 it became the first web server to surpass the 100 million web site milestone...
,
MySQLMySQL is a relational database management system which has more than 6 million installations. MySQL stands for "My Structured Query Language". The program runs as a server providing multi-user access to a number of databases...
(database software), and
PHPPHP, or PHP: Hypertext Preprocessor, is a widely used, general-purpose scripting language that was originally designed for web development, to produce dynamic web pages. It can be embedded into HTML and generally runs on a web server, which needs to be configured to process PHP code and create web...
(web scripting language), principal components to build a viable general purpose
web serverThe term web server or webserver can mean one of two things:# A computer program that is responsible for accepting HTTP requests from clients , and serving them HTTP responses along with optional data contents, which usually are web pages such as HTML documents and linked objects .# A computer that...
.
The precise combination of software included in a LAMP package may vary, especially with respect to the web scripting software, as PHP may be replaced by
PerlPerl is a high-level, general-purpose, interpreted, dynamic programming language. Perl was originally developed by Larry Wall, a linguist working as a systems administrator for NASA, in 1987, as a general-purpose Unix scripting language to make report processing easier. Since then, it has undergone...
or
PythonPython is a general-purpose high-level programming language. Its design philosophy emphasizes code readability. Python claims to "[combine] remarkable power with very clear syntax", and its standard library is large and comprehensive...
. Similar terms exist for essentially the same software suite (AMP) running on other operating systems, such as MS Windows (
WAMPWAMPs are packages of independently-created programs installed on computers that use a Microsoft Windows operating system. The interaction of these programs enables dynamic web pages to be served over a computer network, such as the internet or a private network."WAMP" is an acronym formed from the...
),
Mac OSMac OS is the trademarked name for a series of graphical user interface-based operating systems developed by Apple Inc. for their Macintosh line of computer systems. The Macintosh user experience is credited with popularizing the graphical user interface...
(
MAMPThe acronym MAMP refers to a set of free software programs commonly used together to run dynamic web sites on servers running the Apple Macintosh operating system, Mac OS X:* Mac OS X, the operating system;* Apache, the Web server;...
), Solaris (SAMP), or
OpenBSDOpenBSD is a Unix-like computer operating system descended from Berkeley Software Distribution , a Unix derivative developed at the University of California, Berkeley. It was forked from NetBSD by project leader Theo de Raadt in late 1995...
(OAMP).
Though the original authors of these programs did not design them all to work specifically with each other, the development philosophy and tool sets are shared and were developed in close conjunction. The software combination has become popular because it is free of cost, open-source, and therefore easily adaptable, and because of the ubiquity of its components which are bundled with most current
Linux distributionA Linux distribution is a member of the family of Unix-like software distributions built on top of the Linux kernel. Such distributions consist of a large collection of software applications such as word processors, spreadsheets, media players and database applications...
s. When used in combination they represent a
solution stackIn computing, a solution stack is a set of software subsystems or components needed to deliver a fully functional solution, e.g. a product or service....
of technologies that support
application serverAn application server, is an n-tier software architecture, serves an API to expose business logic and business processes for use by third-party applications.The term can refer to:# the services that a server makes available...
s. As such, software packages exist for novice users that deploy all components with a minimal set of installation tasks.
History
Michael Kunze coined the acronym LAMP
in an article for the German computing magazine c'tc't is a German computer magazine, published by the Heinz Heise publishing house. Originally a special section of the electronics magazine elrad, the magazine has been published monthly since December 1983 and biweekly since October 1997...
in April 1998. The article aimed to show that a bundle of free software could provide a viable alternative to commercial packages. Knowing the IT-world's love of acronyms, Kunze came up with LAMP as a marketing-like term to increase the popularity of free software.
O'ReillyO'Reilly Media is an American media company established by Tim O'Reilly that publishes books and web sites and produces conferences on computer technology topics...
and
MySQL ABMySQL AB was a software company. MySQL AB is the creator of MySQL, a relational database management system, as well as related products such as MySQL Cluster...
have made the term popular among English-speakers. Indeed, MySQL AB has since based some of its marketing efforts on the popularity of the LAMP stack.
The scripting component of the LAMP stack has its origins in the
Common Gateway InterfaceThe Common Gateway Interface is a standard protocol for interfacing external application software with an information server, commonly a web server....
technology of
web serverThe term web server or webserver can mean one of two things:# A computer program that is responsible for accepting HTTP requests from clients , and serving them HTTP responses along with optional data contents, which usually are web pages such as HTML documents and linked objects .# A computer that...
interfaces that became popular in the early 1990s. This technology allows the user of a
web browserA web browser is a software application for retrieving, presenting, and traversing information resources on the World Wide Web. An information resource is identified by a Uniform Resource Identifier and may be a web page, image, video, or other piece of content...
to execute a program on the web server, and thereby receive dynamic as well as static content. Programmers used scripting languages with these programs because of their ability to manipulate text streams easily and efficiently, even when they originate from disparate sources. For this reason system designers often referred to such scripting systems as
glue languageA glue language is a programming language used for connecting software components together.Examples of glue languages:* Unix Shell scripts * Windows NT type Shell scripts...
s.
Apache
Apache is a
free softwareFree software, software libre or libre software is software that can be used, studied, and modified without restriction, and which can be copied and redistributed in modified or unmodified form either without restriction, or with minimal restrictions only to ensure that further recipients can also...
/
open sourceOpen source software is computer software for which the source code and certain other rights normally reserved for copyright holders are provided under a software license that meets the Open Source Definition or that is in the public domain. This permits users to use, change, and improve the...
web serverThe term web server or webserver can mean one of two things:# A computer program that is responsible for accepting HTTP requests from clients , and serving them HTTP responses along with optional data contents, which usually are web pages such as HTML documents and linked objects .# A computer that...
, the most popular in use.
MySQL
MySQL is a
multithreadIn computer science, a thread of execution results from a fork of a computer program into two or more concurrently running tasks. The implementation of threads and processes differs from one operating system to another, but in most cases, a thread is contained inside a process...
ed,
multi-userMulti-user is a term that defines an operating system or application software that allows concurrent access by multiple users of a computer. Time-sharing systems are multi-user systems. Most batch processing systems for mainframe computers may also be considered "multi-user", to avoid leaving the...
,
SQLSQL is a database computer language designed for managing data in relational database management systems , and originally based upon Relational Algebra. Its scope includes data query and update, schema creation and modification, and data access control. SQL was one of the first languages for...
database management system (DBMS) with more than eleven million installations. Since 16 January 2008, owned by
Sun MicrosystemsSun Microsystems, Inc. is a multinational vendor of computers, computer components, computer software, and information technology services, founded on February 24, 1982...
, as of 20 April 2009,
Oracle CorporationOracle Corporation specializes in developing and marketing enterprise software products — particularly database management systems. Through organic growth and a number of high-profile acquisitions, Oracle enlarged its share of the software market...
has agreed to purchase Sun Microsystems.
Perl, PHP, or Python
PHPPHP, or PHP: Hypertext Preprocessor, is a widely used, general-purpose scripting language that was originally designed for web development, to produce dynamic web pages. It can be embedded into HTML and generally runs on a web server, which needs to be configured to process PHP code and create web...
is a
reflectiveIn computer science, reflection is the process by which a computer program can observe and modify its own structure and behavior. The programming paradigm driven by reflection is called reflective programming...
programming languageA programming language is an artificial language designed to express computations that can be performed by a machine, particularly a computer. Programming languages can be used to create programs that control the behavior of a machine, to express algorithms precisely, or as a mode of human...
originally designed for producing
dynamic Web pageClassical hypertext navigation, with HTML or XHTML alone, provides "static" content, meaning that the user requests a web page and simply views the page and the information on that page....
s. PHP is used mainly in
server-sideServer-side scripting is a web server technology in which a user's request is fulfilled by running a script directly on the web server to generate dynamic web pages. It is usually used to provide interactive web sites that interface to databases or other data stores. This is different from...
application softwareApplication software is a computer program that functions and is operated by means of a computer, with the purpose of supporting or improving the software user's work. In other words, it is the subclass of computer software that employs the capabilities of a computer directly and thoroughly to a...
, but can be used from a
command line interfaceA command-line interface is a mechanism for interacting with a computer operating system or software by typing commands to perform specific tasks...
or in standalone
graphical applicationsGui or guee is a generic term to refer to grilled dishes in Korean cuisine. These most commonly have meat or fish as their primary ingredient, but may in some cases also comprise grilled vegetables or other vegetarian ingredients. The term derives from the verb, "gupda" in Korean, which literally...
.
Variants and alternatives
With the growing use of LAMP, variations and
retronymA retronym is a new name for an object or concept to differentiate the original form or version of it from a more recent form or version. The original name is most often augmented with an adjective to account for later developments of the object or concept itself...
s appeared for other combinations of operating system, web server, database, and software language (see associated articles for additional information).
External links