LAMP (software bundle)
LAMP (Linux, Apache, MySQL, Perl/PHP/Python) is an
Each letter in the acronym stands for one of its four open-source building blocks:
- Linux for the operating system
- Apache HTTP Server
- MySQL for the relational database management system
- Perl, PHP, or Python for the programming language
The components of the LAMP stack are present in the software repositories of most Linux distributions.
History
The acronym LAMP was coined by Michael Kunze in the December 1998 issue of Computertechnik, a German computing magazine, as he demonstrated that a bundle of free and open-source software "could be a feasible alternative to expensive commercial packages". Since then, O'Reilly Media and MySQL teamed up to popularize the acronym and evangelize its use.[2] One of the first open-source software stacks for the web, the term and the concept became popular. The stack is capable of hosting a variety of web frameworks and applications, such as WordPress and Drupal.[3]
Variants
The LAMP model has been adapted to other componentry, though typically consisting of
]The web server or database management system also varies. LEMP is a version where Apache has been replaced with the more lightweight web server Nginx.[4] A version where MySQL has been replaced by PostgreSQL is called LAPP, or sometimes by keeping the original acronym, LAMP (Linux / Apache / Middleware (Perl, PHP, Python, Ruby) / PostgreSQL).[5]
The LAMP bundle can be combined with many other free and open-source software packages, including:
- netsniff-ng for security testing and hardening
- Snort, an intrusion detection (IDS) and intrusion prevention (IPS) system
- RRDtool for diagrams
- Nagios, Collectd or Cacti, for monitoring.
As another example, the software which
Software components
Linux
Linux is a Unix-like computer operating system assembled under the model of free and open-source software development and distribution. Most Linux distributions, as collections of software based around the Linux kernel and often around a package management system, provide complete LAMP setups through their packages. According to W3Techs in October 2013, 58.5% of web server market share is shared between Debian and Ubuntu, while RHEL, Fedora and CentOS together shared 37.3%.[6]
Apache
The role of LAMP's web server has been traditionally supplied by Apache, and has since included other web servers such as Nginx.
Apache is developed and maintained by an open community of developers under the auspices of the
MySQL and database alternatives
MySQL's original role as the LAMP's relational database management system has since been alternately provisioned by others like PostgreSQL, MariaDB (a community-developed fork of MySQL developed by its original developers), and even NoSQL databases like MongoDB.
MySQL is a
MongoDB is a NoSQL database that eschews the traditional relational database structure in favor of JSON-like documents with dynamic schemas (calling the format BSON), making the integration of data in certain types of applications easier and faster.
PHP and alternatives
PHP's role as the LAMP's application programming language has also been performed by other languages such as Perl and Python.
PHP is a server-side scripting language designed for web development but also used as a general-purpose programming language. PHP code is interpreted by a web server via a PHP processor module, which generates the resulting web page. PHP commands can optionally be embedded directly into an HTML source document rather than calling an external file to process data. It has also evolved to include a command-line interface capability and can be used in standalone graphical applications.[9] PHP is free software released under the terms of PHP License, which is incompatible with the GNU General Public License (GPL) due to the restrictions PHP License places on the usage of the term PHP.[10]
High availability and load balancing
Specific approaches are required for websites that serve large numbers of requests, or provide services that demand high
Such high-availability setups may also improve the availability of LAMP instances by providing various forms of redundancy, making it possible for a certain number of components (separate servers) to experience downtime without interrupting the users of services provided as a whole. Such redundant setups may also handle hardware failures resulting in data loss on individual servers in a way that prevents collectively stored data from actually becoming lost. Beside higher availability, such LAMP setups are capable of providing almost linear improvements in performance for services having the number of internal database read operations much higher than the number of write/update operations.[16]
See also
- List of Apache–MySQL–PHP packages
- LYME (software bundle) – a software stack based on Erlang
- MEAN (software stack) – a JavaScript software stack for building dynamic web sites and web applications
- Solution stack
- Web content management system
- Web Platform Installer
References
- ^ "LAMP (Linux, Apache, MySQL, PHP)". SearchEnterpriseLinux. Archived from the original on 28 November 2021. Retrieved 15 December 2021.
- ^ Kay, Russell (25 September 2006). "How To: LAMP". Computerworld. Archived from the original on 11 July 2021. Retrieved 15 December 2021.
- ^ "LAMP stack". IBM cloud learn hub. IBM. October 2015. Archived from the original on 15 December 2021. Retrieved 15 December 2021.
- ^ "LEMP stack (Linux, Nginx, MySQL, PHP)". lemp.io. Archived from the original on 19 November 2021. Retrieved 16 December 2021.
- ^ "Featured users". PostgreSQL. Archived from the original on 22 January 2014. Retrieved 22 January 2014.
- ^ "Debian/Ubuntu extend the dominance in the Linux web server market". W³Techs. Retrieved 16 December 2021.
- ^ "Top reasons for product managers to embed". MySQL. Archived from the original on 2 July 2014. Retrieved 27 July 2014.
- ^ "Sun locks up MySQL, looks to future web development". InformationWeek. Archived from the original on 28 February 2008. Retrieved 27 July 2014.
- ^ "Introduction: What can PHP do?". PHP Manual. Archived from the original on 15 December 2021. Retrieved 16 December 2021.
- ^ "GPL-incompatible, free software licenses". Various licenses and comments about them. Free software foundation. Archived from the original on 16 December 2021. Retrieved 16 December 2021.
- ^ "About Perl". perl.org. Archived from the original on 22 November 2021. Retrieved 16 December 2021.
"Perl" is a family of languages, "Perl 6" is part of the family, but it is a separate language which has its own development team. Its existence has no significant impact on the continuing development of "Perl 5".
- ISBN 0-596-00027-8.
- ISBN 978-0-201-77423-8.
- ^ "Programming language trends – O'Reilly radar". Radar.oreilly.com. 2 August 2006. Archived from the original on 24 September 2021. Retrieved 16 December 2021.
- ^ "About Python". Python software foundation. Archived from the original on 16 December 2021. Retrieved 16 December 2021.
- ^ a b Simic, Dragan; Ristic, Srecko; Obradovic, Slobodan (April 2007). "Measurement of the achieved performance levels of the web applications with distributed relational database" (PDF). Electronics and energetics. Facta Universitatis. p. 31–43. Archived (PDF) from the original on 7 October 2021. Retrieved 16 December 2021.