The term LAMP stack was created Michael Kunze 20 years ago. He wrote an article for a German computing magazine, and he wanted to show that a bundle of free software could provide a viable alternative to expensive commercial packages.
He used the acronym LAMP as a sort of marketing term to try to increase the popularity of free software.
The word “stack” refers to the different software programs that “stack” together to create a platform. This platform then supports the application software. Application software (an app) is a program designed for the end-user. It might be a word processor, a web browser, a website in a web browser, or a game.
Most web applications, or websites, need an operating system, a web server, a database, and a programming language to run. The name LAMP is an acronym that represents the following programs most commonly used on the web:
- L for the Linux operating system: The first layer, the foundation.
- A for the Apache HTTP Server
- M for the MySQL database management system
- P for the PHP programming language
Your application, or website, software run “on top” of this so-called stack. Sure, there are exceptions that we’ll mention below, but this stack is generally the rule.
Web developers choose the LAMP stack because it’s easy to deploy and highly customizable. Also, it has large community support that helps it cater to a wide variety of web applications.
Linux is the operating system but you can also run a stack off of Windows, macOS, and others. Linux has become the standard for web development because it is open source, flexible, customizable, and easy to use. The decision on what operating system to use may be decided on the programming language and database used as PHP and MySQL work best with Linux but SQL and ASP work better on Windows.
Apache HTTP Server is a web server software that runs on top of the Linux operating system; it powers half of the websites on the internet. A web server processes requests and transmits information throughout the internet using HTTP, the protocol used to transfer data over the web.
SQL, short for Structured Query Language, is the most common query language. A query is simply a request for information or data stored in your database.
MySQL is good if you need to change the content of your website often, rely on user-supplied content and feedback, or have a lot of content that needs to be stored and easily retrieved.
PHP (Hypertext Preprocessor) is a programming language that combines the elements of the LAMP stack and allows the application to run efficiently.
PHP interacts well with MySQL. It’s commonly used for web development because it’s fast and easy to work with. In the LAMP stack, the “P” can also refer to two other programming languages, Python or Perl.
PHP is designed for efficiency as it allows the programmer to write new code and immediately see the changes without the need for compiling.
There are other tech stacks out there including MEAN, Django, WISA, and variations of the traditional LAMP stack. So before you choose, take some time to evaluate your project and available team resources for ongoing maintenance, and then determine if you need it to be open source.