What is the LAMP model and why is
it so popular?
LAMP stands for Linux Apache MySQL and Php (sometimes Perl). This
combination of software applications allows web pages to be able access
a database. This combination is becoming so widely used that
Microsoft feels threatened by it. The fact that they are even aware of
it means that it is pretty important. They even have an article on
how to convert from it to a Windows based model. I like to call
this the WIMP model (Windows IIS MySQL Php). This is similar to
their approach to java in that they attempt to steal java programmers by
providing ways to automatically convert java code to c#. One of
LAMP's big advantages is that is free.
This article won't describe the technical details of installing and
configuring these applications. It will just the describe the LAMP
model in general and point out what makes it so good.
L is for Linux
Let's start with Linux. Linux is the operating system. It
is based on unix and is very,very stable. Did I mention that it is
free? The OS itself is free along with it's thousands of applications.
Plus there is is no per user license fee. As many users as
your server can handle will be able to access it. Linux performs
very well as a server. Over 70% of the internet runs on unix based
systems. Linux can also be made very secure. It is generally very
easy to update applications when security bugs are found. And this
doe not require changing the whole operating system, just the
application. Once a linux system is configured it can be left
alone. Many systems go months not days without having to be
rebooted. In many cases the only time you will have to reboot is
when the kernel itself is modified. Linux is very efficient. It does not
require a very powerful cpu or huge amounts of memory to work.
A=Apache
In order to host a web site you need a web server. Apache is a
free web server that is very powerful. Apache has been shown to be
substantially faster, more stable, and more feature-full than
many other web servers. It is an HTTP/1.1 compliant web server
that is highly configurable. It can be customized by writing
modules using the Apache API.
Apache has been tested thoroughly by both developers and users.
The Apache Group maintains rigorous standards before releasing
new versions of their server. This is what helps make it so stable
and secure. One of Apache's strong points is that it an open
source project. Most of the developers are users. Therefore
they have an interest in putting in new features that are truly useful
and keeping things bug free.
MySQL,Yoursql,Everyonessql
Next we need a database to store some information. MySQL is
a free database that is very fast. It is extremely popular and
therefore there is a lot of support help. Extensive reuse of code within
the software and a minimalistic approach to producing functionally-rich
features has resulted in a database management system unmatched in
speed, compactness, stability and ease of deployment. The unique
separation of the core server from the storage engine makes it possible
to run with strict transaction control or with ultra-fast
transactionless disk access, whichever is most appropriate for the
situation.
The MySQL database server supports a broad subset of the ANSI SQL 99
syntax, along with extra extensions.
Alternative
syntaxes from other database systems are also supported, to make
porting applications easier. It also supports technology such as
views and stored procedures.
You can connect to a MySQL database server from all of the major
platforms, using nearly any programming language, with a standard
threadsafe client library. Many languages such as PHP contain
built in commands that make it easy access data. There are also
ODBC drivers available.
Give me a P, Give me an H,Give me
a P
PHP (recursive acronym for "PHP: Hypertext Preprocessor") is a
scripting language, with a particular affinity for and emphasis on
enhancing Web pages. It was designed to be used for web pages from the
very beginning. It has a syntax very similar to C (with a
smattering of Perl and shell), and includes lots and lots of functions
for things like database access, dealing with CGI requests, and image
creation and manipulation.
When PHP is used as an Apache module, the language elements are
embedded in the document pages themselves. The code is executed on
the server inside Apache. A file might look something like the following:
<body bgcolor="#ffffff">
<h1 align="center">Acme
Products</h1>
<h2 align="center">Welcome back. Today is
<? php
$date = get_the_date();
echo $date . "! ";
?>
</h2>
When a Web client requests a PHP-enabled page, the mod_php module gets
to interpret the document and make changes to it before the Web server
itself sends the results back. The results of the above PHP fragments
might cause the following to be what the Web client actually receives:
<body bgcolor="#ffffff">
<h1 align="center">Acme
Products</h1>
<h2 align="center">Welcome back. Today
is Friday April 1,2000!</h2>
Notice how all the stuff between "<?" and "?>" was
replaced—interpreted by mod_php—before it reached the browser? That's
part of the power of PHP. What distinguishes PHP from something like
client-side JavaScript is that the code is executed on the server.
The user can not see your code, only its output.
With PHP you are not limited to output HTML. PHP's abilities includes
outputting images, PDF files and even Flash movies (using libswf and
Ming) generated on the fly. You can also output easily any text,
such as XHTML and any other XML file.
One of it's best feature is that PHP can access a wide range of
databases with ease. One of them is MySQL. Thus you can have
web applications that access data from a relational database. PHP
even supports ODBC so you can connect to any database that has an odbc
driver.
PHP also has support for talking to other services using protocols
such as LDAP, IMAP, SNMP, NNTP, POP3, HTTP, COM (on Windows) and
countless others. You can also open raw network sockets and interact
using any other protocol.
PHP has extremely useful text processing features, from the POSIX
Extended or Perl regular expressions to parsing XML documents. For
parsing and accessing XML documents, it supports the SAX and DOM
standards.
PHP is extremely simple for a newcomer, but offers many advanced
features for a professional programmer. You can be writing
useful PHP scripts within a few hours.
Conclusion
Now do you see how it all ties together? Linux provides the
stable environment. PHP can access the MySQL database while
running inside the Apache web server. Everything compliments each
other. They are very fast when they all work together.
Date: 4/23/2003