Turn on Web Interactivity with LAMP

Create a more feature-rich Web site with Open Source tools

By: Michael Schrecker

November 29, 2005

Though there are a large number of proprietary technologies available for building Web-based applications, one of the most interesting trends to emerge in the last few years is the Open Source LAMP platform.

Using LAMP, you can build all sorts of network-enabled applications (such as events calendars or pages where your clients can register for your organization's services) all without having to shell out money for high-cost applications, licenses, and hardware.

What the Heck is LAMP, Anyway?

LAMP is an acronym describing the use of four Open Source software packages that are used in conjunction: the Linux operating system; the Apache Web server; the MySQL database; and either the PHP, Perl, or Python scripting language.

In the LAMP framework, Linux provides the underlying plumbing, handling network access, storage, and other back-end functionality. Apache deals with the Web traffic and hosts the interpreters for the languages, often as modules integrated with the core Apache application. MySQL is a robust database engine that controls the data needs of applications built on LAMP. And, finally, Perl, Python, and PHP -- the scripting languages used to write the actual Web applications -- have features that make building applications on top of Linux, Apache, and MySQL much easier than if you used another language.

Perl is an older, general-purpose scripting language with a strong emphasis on text handling and manipulation while PHP and Python are more recent technologies with a greater focus on the creation and manipulation of Web pages and interaction with databases. The scripting language you decide to use depends on the purpose of your Web application, the types of data it will interact with, and, mostly, the preference of the programmer writing the application.

Do IT Yourself with LAMP

LAMP has become a lowest-common-denominator technology, a set of applications that is widely available, reliable, well-supported, and relatively easy to use. All of LAMP's components are free, Open Source technologies with minimal resource requirements, so they don't require a significant investment in software licenses or computer hardware to set up and use.

As LAMP's popularity increases, a large number of applications -- many of which are free and Open Source -- have been developed on it. These applications include the Drupal content management system; PHProjekt, a Web-based project management system; WebCalendar , a calendar publishing program; and, a number of different Wiki implementations for shared editing and document collaboration.

Due to the widespread adoption of the LAMP platform, it can make a good choice for custom-built Web applications. With libraries of freely available code snippets to accomplish many tasks and simplify development, not to mention the fact that many IT consultants and contractors are familiar with this platform, it's easy to build and support LAMP-based programs. In addition, the open nature of the LAMP platform allows you to take "generic" applications like Drupal, and customize them to fit your nonprofit's particular needs.

A number of Internet service providers have LAMP environments available for hosting applications, so your nonprofit wouldn't need to manage its own servers to make use of LAMP applications.

LAMP's Minor Downsides

LAMP does have a few drawbacks, mostly in relation to performance. Perl, Python, and PHP are interpreted languages, meaning that an application -- often integrated as a module within Apache -- needs to read through and interpret the program as it is being run, adding some overhead to the application.

Of course, like any piece of custom code, a LAMP application requires regular maintenance, and the underlying systems need to be patched and maintained.

On the upside, LAMP's simpler technology is more browser-agnostic, and LAMP applications will run well on almost any computer with an Internet connection and a Web browser.

While LAMP has its own set of drawbacks, upgrading to a shiny new Open Source model may help you build a better, more feature-rich site that will cost far less than a site running on proprietary technologies.