Linux, Apache, MySQL and PHP, or LAMP as they’re more affectionately known, are a collection of software packages that form the infrastructure supporting much of the World Wide Web. They have become the most common software packages used for web servers around the world today and moreover, they’re FREE!
While the individual software components that comprise a LAMP system are intrinsically separate, together their synergy offers a web server solution that is certainly much more than the sum of its individual parts. In fact, LAMP is so popular that it has almost become the de facto standard for web server systems across the globe.
Built upon open source and essentially free software, it is easy to see why LAMP has become so rapidly accepted by web hosting organisations as their server software system of choice. Furthermore, being free, there’s no reason not to try it for yourself and if you don’t get on with it, then you haven’t wasted any of your hard earned pennies in the process.
Letting the Genie Out
The term LAMP was first coined in 1998 (just seven years after Linux burst on to the scene) by Michael Kunze, who proposed that a bundle of free software packages could effectively rival commercially available software as a serious alternative for the implementation of a commercial-grade web server.
Since then, LAMP has gone from strength to strength, with many versions of Linux now bundling the ubiquitous Apache, MySQL and PHP packages with their operating system as standard.
Most software packages run on top of an underlying core suite of software programs that provide basic system functions at the heart of the computer. This suite of core programs is more commonly referred to as the operating system.
While Microsoft operating systems, such as Windows XP and Vista, are well known to most people in the home environment, other operating systems are in abundance commercially, such as the “Unix like” Linux operating system.
Linux is a free, open source operating system upon which much of the world’s web servers are based and which is the core of the LAMP suite of packages.
Apache is a free web server that runs on Linux, amongst many other operating systems.
To say that Apache is the most popular web server and forms much of the infrastructure of the World Wide Web is not an idle statement.
Since 1996, Apache has consistently been the most popular web server on the internet and as of the time of writing, Apache serves over 60% of the world’s websites and in 2009 became the first web server to serve over 100 million web sites.
Unfortunately, web servers aren’t particularly inspiring things, they just do what they say on the tin: serve web pages. Rather, it’s the additional software packages integrated with the web server that really do the “interesting” and “useful” stuff such as the scripting (programming) languages like PHP and the database systems like MySQL.
MySQL is an enterprise class (big and professional) relational database management system (RDBMS). This again is free software that provides multi-user access to multiple databases, which in turn can support a host of websites simultaneously.
MySQL uses the industry standard Structured Query Language (SQL) to perform queries and return results from its databases.
Just because it’s free though, doesn’t mean it’s sub standard. MySQL is scalable and is the database system of choice for many large, well known web services such as YouTube, Facebook, Flickr and Wikipedia.
So, if you’re developing a website using a LAMP server with a MySQL database and are worried about how well the system would cope with high traffic, don’t be. It will be more than capable of meeting your potential needs.
While the ‘P’ of the LAMP acronym can refer to web scripting languages such as Perl and Python, it most commonly refers to the PHP language.
PHP programs running on a web server act a bit like the glue between the database and the web pages. When a user requests a web page, the PHP script talks to the database to gather the data it requires based on the user’s request. Once it has this data, the script then puts together a web page with the required data and sends it to the user’s web browser.
In this way PHP is said to generate dynamic web pages based on user’s input, compared to standard fixed, or static HTML web pages that can’t be adjusted on the fly in such a manner.
Running a LAMP server is a cheap, reliable and moreover scalable way of hosting multiple, dynamic websites.
A LAMP server can be used to run a single, simple website at home if you wish on an old spare PC with no software costs.
Alternatively, the same software could be run on a multi-processor, ninja server and be used to host a plethora of different websites or one large, multi-user, globally accessible web site.
Clearly the choice is up to you, but if you start off small and your project takes off, then LAMP can be with you all the way.
Happy website building…