LAMP-A Free and Open Source Web Development Platform

by Darren Wilkins

Since its advent the open source community has developed, and made accessible thousands of software, that have changed and significantly impacted the computing industry and the world as a whole. From software that run SCADA systems (Supervisory Control and Data Acquisition), embedded systems (in cars, air traffic systems, etc), cell phones, and medical equipment, the open source community has done it all. But one particular area in which open source software has had a significant impact is Web development. In previous years, when one engaged a discourse regarding the open source community’s impact on the World Wide Web, it typically gravitated toward the Apache Web server and/or other Web-related protocols. Today, open source Web development discourses are focused on a combination of free and open source software (FOSS) that now constitutes one of the best and most robust Web development platforms know as LAMP.

This article targets current and potential members of the Liberian Open Source Initiative (LIBOSI), the business community interested in establishing a Web presence, and IT professionals and students who have interest in Web development. My goal here is to introduce a FREE and OPEN SOURCE Web development platform that can be used to build a dynamic and robust Web presence, for government, businesses, schools, organizations, etc. In today’s IT environment, if an unemployed student or IT professional wanted to learn Web development using a proprietary platform like Microsoft.Net, he/she would have to spend hundreds of US dollars; an expense that an unemployed Liberian, or should I say most Liberians cannot afford. In this article, I will discuss LAMP (acronym explained later), a free and open source Web development platform. I place focus on the PHP programming/scripting language because it is my preference of language within the LAMP stack. My apologies to those who prefer the Perl and Python programming languages.

No, LAMP does not stand for Liberian Association of Married People! LAMP, in fact, is the acronym for Linux, Apache, MySQL and PHP/Perl/Python, with PHP being the most widely used programming language in the combination. Each component of the LAMP stack (Linux, Apache, MySQL, PHP/Perl/Python) is open source and available for free. The clause “open source and available for free”, means that anyone can use and modify each of the components in the stack as long as open source standards and principles are followed. It is important to note that not all open source software is free and not all free software is open source! The acronym LAMP was coined by Michael Kunze in a German magazine in 1998 when he tried to show that a bundle of free software could provide a viable alternative to commercial packages.

In the LAMP stack, Linux is the operating system and it was developed by Linus Torvolds while he was a student at the University of Helsinki. The most popular proprietary alternatives to Linux are Windows or Macintosh. Apache, developed by the Apache Foundation, is arguably the most commonly-used Web server. Its most popular proprietary competitor is Internet Information Server or IIS from Microsoft. MySQL is a relational database management system (RDBMS) with add-on tools for Web-based administration. It was developed originally by Michael Widener and named after his daughter, My. MySQL’s most popular proprietary competitors are Microsoft SQL Server, Oracle, Informix, etc. PHP is a popular object-oriented scripting language. Programmers like it because of its ability to manipulate text streams with ease and efficiency, even when they originate from disparate (different) sources. It is not a difficult programming language to learn as is C/C++ or Python or other programming languages. PHP is a very forgiving, flexible and easy to learn language.

There are also other Web development stacks such as Apple Computer’s WebObjects, Microsoft’s .NET and Java/Java EE architecture. Yet, these are all proprietary Web development platforms that may not be affordable to an individual or small business that needs a dynamic Web presence.

LAMP provides a lot of benefits including: flexibility, ease of development, customization, ease of deployment, security, and an enthusiastic community of supporters (CoS). Be that as it may, LAMP has not gained the market strength to dominate Microsoft .NET or Java platforms. Despite this, it is, and will continue to be deployed along with proprietary software to build dynamic and interactive Web sites. Currently several combinations of proprietary and open source Web development tools are being used in the enterprise. Linux, Apache and MySQL are combined with Java to form a LAMJ platform. Windows on the other hand, combined with Apache, MySQL and PHP/Perl/Python to create the WAMP platform. What this essentially implies is that for now, we will not see any single Web platform dominate the market as we have seen with Microsoft’s Windows operating systems. J2EE, LAMP, .NET, and others will be around and used based on the requirements of end-users. But whatever the operating system used, a combination of a Web server (Apache), dynamic components (using Perl, Python or PHP), and a database (MySQL), can allow a developer to create a truly database-driven and dynamic Web site that is easy to update and provides rich functionality to support users.

Personally, I use LAMP to run three applications: Moodle (Course Management System), Oscommerce (E-commerce) and Drupal (Content Management System). My experience building Linux servers that run these platforms forces me to boldly inform my reader that while LAMP is not actually difficult to learn, install, configure and administer, it does require a lot of work, time, and focus. Basically, if you are a “point and click” person who hates command line interfaces (CLI), coding or scripting, you may want to consider an alternative and more user-friendly platform.

Another thing worth mentioning is since there are over 300 distributions of Linux (Ubuntu, SuSe, CentOS, Fedora, Debain, Redhat, etc), installation can be challenging. Carrying out some operations running different Linux versions may require the execution of different actions. This is because different Linux distributions store files in different locations, use different commands to complete one and the same task, and so on. For example Ubuntu may have its “www” sub-folder in the “VAR” directory, while other distributions might store the “www” folder in another directory. And then there are several different types of downloads and installation methods; some involve the use of APT (UBUNTU) others aim for RPM (Redhat), Deb (Debian), YUM (Fedora), TAR, and so on. Initially, this makes it difficult for the novice IT professional. The bottom line is when doing a LAMP installation, you must pay close attention! But overall, LAMP provides a better alternative for people in developing nations like Liberia who are struggling to gain a place in the digital community.