For the entire life of the World Wide Web, the backbone that's kept it upright are the tools of Linux. Linux, Apache, MySQL, PHP, Perl, and Python Ñ collectively known as LAMP Ñ comprise more than two-thirds of the servers, databases, and scripting languages on the web today. It's getting more difficult each day to be a web developer without knowledge and at least a rudimentary level of skill with these tools.
What's the attraction to LAMP tools for developers around the world? In part, it's the open source underpinnings of LAMP tools. They're freely available, easily configured, and very robust. They're in a constant state of development and improvement, adding features suggested by the user community at large. They can be easily deployed, fully configured, and maintained with a minimal amount of effort. In short, the LAMP tool kit allows developers to do what they do best: develop, without spending a disproportionate amount of time in the administrative details.
All these elements are addressed in the package of LAMP tools provided by Linux. With commerce and the internal communication needs of the enterprise in mind, Linux helps to assure that configuring and administering a LAMP server will be as painless a process as is possible.
The tools of LAMP development
The well-defined tools of LAMP web development exist in nearly every Linux
distribution. They include:
- Apache web server
- MySQL database application
- PHP scripting language
- Perl programming language
- Python programming language
Note that it's not necessary to have all elements of LAMP installed. The LAMP acronym points more to a selection of one the "P" elements (PHP, Perl, and Python) rather than to a need for the inclusion of all of them. Of course, you'll likely find both Perl and Python useful tools for other administrative tasks, so they'll probably be installed on your system whether or not your intent is to use them as an element of LAMP web development.
Linux provides the most recent version of each of these packages available at the time of the Linux version release. Apache, PHP, Perl, and Python are provided as defaults in the installation of Linux, while MySQL requires selection at the time of installation.
Clearly, the most important element of the LAMP combination is the Linux
distribution installed on the server.
With dozens of distributions
available, the choice can be a bit perplexing. Of the available
distributions, however, Linux has grabbed the strongest niche in
enterprise-grade LAMP web servers for several reasons.
- Linux utilizes the latest stable kernel
- The underlying ext3 file system is a well-proven technology for
both rapid recovery and protecting the integrity of the data on the
- The Anaconda-based installation is both easy and accurate,
detecting and configuring nearly all the available hardware options for
- The Anaconda hardware detection routines are particularly
well-suited to such devices as SCSI drives and RAID arrays, devices that
enhance the overall performance and stability of enterprise-grade
- Linux also provides clean and easy-to-use tools for failover
clustering and load balancing services — services that become even
more essential in the performance sensitive enterprise environment.
The second element of LAMP web development is the Apache server, another
open source tool with a rich and mature code base. Created in the early
1990s, the HTTP daemon (httpd) package today operates nearly 65% of the web
Apache is highly configurable and highly modular. A completely
customized configuration can be achieved simply by modifying the text
configuration file, located on the file system at
/etc/httpd/conf/httpd.conf. This file is commented
in depth, providing configuration guidance to both the novice and expert
webmaster. The code base can also be extended by means of
modules, chunks of code that can be loaded at the
time the server is started or dynamically, as needed. Hundreds of these
modules — most developed by interested third parties — exist
in the official Apache code base today.
Apache is part of the default installation of Linux. In short, installing
Apache doesn't require the further action of selecting it as a package
during installation. The Apache package is referred to as httpd in the
standard Linux configuration. Configuration and related files are named
The current version of the Apache software may be downloaded from the
The third element of the LAMP tool set is the MySQL database, another
robust open source tool that has revolutionized the way webpages,
graphics, tables, and data sets of all sorts are served up on the web.
Web-based databases in general, and MySQL in particular, have made it
possible to build and present fully dynamic websites, capable of
presenting content in real time. They've also helped to further the goal
of separating content from formatting, speeding the load time of sites
while making them far more manageable than in the past.
Unlike the Apache server, MySQL is not an element of the default
installation in Linux. Linux does, however, provide the MySQL application
in the most recent version as of the time of the Linux release. For those
who prefer MySQL over the default PostgresSQL database installation in
Linux, installing the code is simply a matter of selecting it from the
databases section during the Linux installation.
The MySQL software packages can be downloaded from the
PHP has, in just a few short years, become one of the predominant
scripting languages on the web. It's another integral element of LAMP
development,and can be found everywhere from personal
homepages to content management systems (such as Drupal) to large-scale corporate
intranets. With a relatively easy syntax and open source licensing,
webmasters and developers around the world have migrated to PHP from the
more difficult and syntactically challenging scripting languages like
PHP 5.0 was released in July 2004. The newest version fully support
object-oriented syntax and provides a command line capability for quick
PHP is part of the default installation of Linux. However, in order to
interact properly with a MySQL database, the php_mysql module must be
chosen at install time. This module provides the interaction between PHP
and MySQL in the form of an Apache module.
The latest version of PHP can be downloaded from the PHP website.
Perl, the Practical Extraction and Report Language, was the creation of
linguist and programmer Larry Wall. Wall had also had a hand in
developing the Network News Transfer Protocol (NNTP) to speed delivery
of network newsgroup messages to users. In 1987, he released Perl as an
"interpreted language optimized for scanning arbitrary text files,
extracting information from those text files, and printing reports based
on that information."
Perl is an exceptional tool for text parsing.
Perl borrowed heavily from other languages such as C, awk, sed, sh, and
BASIC, all of which held text processing as their primary focus. In
subsequent versions, Perl has added robust database interaction code,
unicode support, and object orientation. It's also become much more
extensible, supporting thousands of add-on modules via the CPAN
(Comprehensive Perl Archive Network) library.
Perl is included in the default installation of Linux. The current stable
version of Perl is 5.8.6 and can be downloaded in source or binary form
from the CPAN site.
The last leg of the LAMP stool is Python, an interpreted scripting
language written and released by Guido van Rossum in 1990. van Rossum
was, at the time, a huge fan of the British Monty Python television
series. The language was originally written for the Amoeba distributed
computing system and took on the name of the author's favorite
The easy syntax of Python has made it a great tool for embedding in
other languages. This syntax also makes it possible to create and deploy
Python applications quickly, with minimal debugging. Like the other
languages, Python is also fully extensible, providing the ability to
quickly add purpose-specific features simply by adding pre-written
modules. The current Python version is 2.4 and is available from