LAMP: The Most Popular Server System Ever

You may have heard of a server system called LAMP, and wondered what it is. Well, the answer is that LAMP isn't any one thing on its own - it's actually a combination of four technologies. Together, the LAMP technologies form the most popular overall server system on the web today. Which technologies are they? The answer lies in the name. LAMP stands for Linux, Apache, MySQL and Perl/PHP. The term originated as a marketing word to help point out that open source (free) software, when combined, could be just as effective as expensive 'enterprise solutions' like J2EE (Java) or Microsoft's .NET. To understand the system, let's take a look at the components individually. Linux Linux is widely considered to be the open source operating system of choice, and the main alternative to Microsoft Windows. Thousands of volunteers from all over the world work on Linux and create programs for it. At its heart, the system is more-or-less a Unix derivative, which means that it's very stable and fast. While widespread adoption of Linux for the desktop seems far off, mainly because of the difficulty of getting people to switch, it isn't stopping Linux from doing very well on web servers. There are many different varieties of Linux, known as 'distributions', with each one focusing on different features. Some popular distributions include Debian (www.debian.org), SuSE (owned by Novell, www.novell.com/linux/suse) and Red Hat (free version at fedora.redhat.com). If you're thinking of trying out Linux on your own computer, you might like to look at Ubuntu (www.ubuntulinux.org), which is a less technical and relatively easy to use distribution. Apache Apache is the world's most popular web server bar none. It was based on the second-ever web server, which was developed at the NCSA, and its history goes back as far as 1995. For all intents and purposes, Apache has become the industry standard server: it would be silly to say that Apache isn't suitable for business use, considering that it is included in enterprise packages like Oracle and IBM's WebSphere. Apache is developed by the non-profit Apache Foundation (www.apache.org). MySQL MySQL is a relational database, popular because of its relative simplicity and the fact that it's free. It is considered to be much easier to set up and use than more 'traditional' database software, and MySQL databases can be managed using a range of graphical software. MySQL is controversial among database professionals, however, as its developers haven't included many complicated advanced features, feeling that they would make the software too difficult to use without making it any more useful. MySQL is developed by a Swedish company, MySQL AB, and its website is www.mysql.com. Perl and PHP Perl and PHP are both scripting languages, and they are both often used as the 'glue' that makes a database-driven website do what it should. However, the two languages, are very different: Perl is powerful but hard to read, while PHP is simpler but more limited. Choosing between them is largely a matter of preference, which is why they're both included in the system - some people also include a third P, Python, as an alternative language. If you're starting out, it's probably best to use PHP - the official site at php.net has good tutorials and references on the language. Perl's site is at perl.org, but you should only really start with Perl if you've got some previous programming experie Getting LAMP. If you want to get the whole LAMP system together instead of downloading the components separately, a good place to go is www.apachefriends.org/en. They offer it for download - don't worry, all the software is free. You don't get Linux, but you get everything else, and it will install easily on most operating systems, including Linux and Windows. LAMP Variants There are a number of LAMP variants that replace parts of the system. While these systems aren't as popular, they're still worth knowing about and considering. WAMP: Windows replaces Linux. MAMP: Mac OS replaces Linux. AMP: Apache, MySQL and Perl/PHP running on any operating system. LAPP: PostgreSQL replaces MySQL. LAMJ: JSP replaces Perl/PHP. There is also the insulting-sounding term WIMP, which means that Windows replaces Linux and IIS replaces Apache - this is considered to result in a much worse system than LAMP.