LAMP

Listen to the Computerworld TechCast: LAMP.

DEFINITION: LAMP is an acronym taken from the initial letters of a set of free software programs commonly used together to run dynamic Web sites or servers. The components are Linux, Apache and MySQL, with the final “P” standing for any of three scripting languages: PHP, Perl or Python.

In the jargon-laden world of IT, new terms are created as shorthand ways of referencing or discussing otherwise cumbersome phrases. One addition to the lexicon that has gained increased popularity and use is LAMP, which refers to a group of free, largely open-source software that forms the basis of many — maybe most — Web servers in use today. LAMP has four components: Linux, Apache, MySQL and Perl, PHP and/or Python. (There are often variations on Linux and MySQL as well.)

More

Computerworld
QuickStudies

While these programs were not specifically designed to work with one another, the open-source ethos and community-based development efforts made interoperability a strong focus and helped make this combination a popular and highly reliable choice. The fact that all are available to use for free didn’t hurt either.

In brief, here are the elements that make up LAMP.

Linux is, of course, the open-source operating system kernel originally created by Linus Torvalds and based loosely on Unix. From its university student, hobbyist roots, Linux has become a family of highly reliable operating systems that are used by both large and small organizations worldwide.

Thanks to the large open-source development community for the operating system kernel itself, individual development groups for the many different distributions, and a number of commercial versions that are supported by credible vendors, Linux is regarded as a safe, reliable choice for many server applications.

Apache is, hands down, the most widely used Web server on the planet. Apache has been an open-source effort from its beginnings around 1995 and is controlled by a group called The Apache Software Foundation. As of August 2006, according to a survey by Netcraft Ltd., Apache served 62% of all Web sites on the Internet and is clearly the world’s most popular Web server, although in recent months it has been losing market share to Microsoft Corp.’s Internet Information Server. Still, Apache remains the de facto reference platform against which all other Web servers are judged.

MySQL is a multithreaded, multiuser, SQL-based database management system with more than 6 million installations. Unlike the other components, MySQL is not open-source but has been copyrighted and owned by a single for-profit company since its 1995 inception. Uppsala, Sweden-based developer MySQL AB makes it available as free software under the GNU General Public License but also dual-licenses it under more traditional, proprietary arrangements in situations where the intended use is incompatible with the GPL.

PHP, Perl and Python are the programming languages of choice in most LAMP and LAMP-like installations. Besides starting with the same letter of the alphabet, all are characterized as concise, compact scripting languages that can allow a user to execute a program on the Web server from within a browser window.

The use of scripting languages started with the Common Gateway Interface Web interfaces of the early 1990s, simplifying the delivery of Web pages with dynamic, updated content in addition to static, unchanging pages.

Programmers preferred scripting languages for these applications because they made it relatively easy to manipulate text streams from a variety of sources.

The acronym LAMP was coined by writer Michael Kunze in an article in the December 1998 issue of German computing magazine Computertechnik. Kunze was trying to show that a bundle of free software could be a feasible alternative to expensive commercial packages. Since then, publisher O’Reilly & Associates and MySQL have worked to popularize the term.

Platform or App Stack?

Many refer to LAMP as a stack, a layered grouping of basic business software. These layers are comparable with the ones that make up commercial stacks like Microsoft’s .Net framework. When used in combination, they support application servers.

Competing stacks of commercial middleware include unified application development environments such as .Net, IBM’s WebSphere, Apple Computer Inc.’s WebObjects and Sun Microsystems Inc.’s Java Enterprise Edition. But whether we call LAMP a stack or a platform, it clearly qualifies as having an interlocking set of technologies on which developers can build and deploy applications.

Is LAMP ready for use inside the enterprise? Yes and no. It’s already used to run high-volume Web sites, such as the O’Reilly Network. Major chunks of Internet giants such as Amazon.com Inc. and Google Inc. use LAMP systems and networks. But you probably wouldn’t want to run your core financial systems on LAMP; until recently, MySQL didn’t even understand the notion of a transaction.

By itself, LAMP really only defines software for Web applications. Although you can use it to build an application that connects to sophisticated middleware, the heavy-duty programming would likely have to be done in a different language.

The .Net and Java platforms, in contrast, offer a way of writing both Web scripts and complex enterprise applications in the same language.

Still, LAMP is likely to be popular with price-conscious organizations that have strong internal development efforts and are comfortable with peer-based support. Does that fit your company’s environment and culture?

Kay is a Computerworld contributing writer in Worcester, Mass. You can contact him at russkay@charter.net. Are there technologies or issues you’d like to learn about in QuickStudy? Send your ideas to quickstudy@computerworld.com.

See additional Computerworld QuickStudies

Copyright © 2006 IDG Communications, Inc.

Download: EMM vendor comparison chart 2019
  
Shop Tech Products at Amazon