Well House Consultants Ltd

Site Search for:

Further Information:
Home
What's New
Resource Centre
WHC Library
Opentalk Forum
About Us

AA AA AA AA
Accessibility
Solution Centre

Please follow this link to find out about our solutions and this link to go to our solutions centre home page

A brief history of the Worldwide Web

The web originated as a tool for putting learned papers out
into the public domain (or at least to make them publicly
available) and provided such an excellent way to do this -
and more - that it rapidly expanded / grew.  Using graphics
(and packages such as Photoshop to help with those
graphics), HTML (and packages such as Dreamweaver to help
edit that HTML) provided pages that were more accessible to
people. Using "plugins" such as Flash, and Javascript, has
allowed for much more substantive operations to be performed
at the browser and widened the accessability still further. 
All these are client side technologies - great for the
display of information on a user's system but not best
suited for applications that need to mine data from
resources that maybe anything from megabytes to terabytes in
size - for such uses, you're looking at enhanced server side
technologies.

It's server side technologies that allow you to check on the
current status of airline flight, buy groceries on line, and
search to find the patron saint of Norway. First piece of
software needed -- the web server, which your browser
contacts to say "I want ....".  The original NCSA server has
now all-but-gone (it was a "seed" product to start the web)
and the two largest player are now the Open Source Apache
httpd server which accounts for just under 70% of domains
worldwide, and Microsoft's IIS which accounts for a further
25% or so. Because it's Open Source, Apache has got a very
wide range of facilities added by enthusiast (such things
tend to be better implemented than facilities added by
"jobsworth"s) and its module structure and tailoring
capabilities allow others to be added with ease.   It's NOT
the sort of thing that you would want your web site user to
have to configure ... but he doesn't have to - all he sees
is a request made and a response received, with Apache
acting as a black box. YOU, as the web site owner, do the
configuration and implementation once for ALL your users. 
To give you an idea of just how much this technology
"scales", the main Well House Consultants web site now gets
around 30000 requests per day from over 3000 different
clients, and we rarely need to touch the server
configuration at all.

The elements of LAMP and what function each performs

Apache's job is to handle requests, interpret what they
mean, and provide responses.  In order for it to access the
basic facilities on the server computer, it makes operating
system calls on that computer.  The most commonly used
Operating System for this purpose is Linux - it's Open
Source too, and it's based on Unix which was and is an
operating systems designed from the ground up for a
multiuser environment and for providing all the facilities a
computer geek could possibly need to do his job well, with
security and without limitations at the Operating System
level.  (By contrast, Microsoft's operating systems are
historically biased toward ease of use and the desktop; not
saying one approach is better than the other, but each has
its place).

In order for Apache to be able to run your (server side)
application, it needs to be told how that's to be done - it
needs to be programmed.  Open Source languages such as Perl,
PHP and Python are used to do this - each of them is
different, although once you've learnt your first such
language you'll find others easier; I would suggest just one
is sufficient to get you started as they're pretty much
alternatives.   There's also a growing base of software our
there such as Wikis, YaBB, SMB, PHPbb, PostNuke, Moveable
Type, OSCommerce and Plone which are ready-written in these
languages, and distributed under (typically) Open Source
licenses too. Such software avoids you having to re-invent
the wheel - that's a huge saving on development and
maintenance costs - and involves you if you wish in active
communities that are taking that software forward.

The final piece in the jigsaw I'm painting is data storage -
plain text files on disc may work for some simple
requirements, but for others either a tag based metalanguage
such as XML, or a relational database to handle data that's
much more tabular in structure, is a near-necessity.  The
MySQL database has become the "de facto" standard for many
Linux - Apache - Perl / PHP / Python web applications ...
making up the acronym LAMP ....

Now .. Apache, MySQL, PHP, Python, Perl *can* all run on
other operating systems such as Unix and Windows XP, and do
so very well; with good initial design the portability of
applications is good (although each of the A, M and P will
need to be configured a little differently).  But Linux is
the "natural" operating system to use, both because of its
similar commercial background and because it's technically
got the right mix.  That's why it's dominant even without a
big advertising / marketing campaign.   Low price of the
operating system is only a minor consideration; TCO (total
cost of ownership) is the factor that businesses should and
do use, and license fees are only a small element of this.
However, a person with good Linux skills can set up a system
quickly, and have it running well, securely and with little
intervention in quite a short timeframe.

What (and how) to learn if you want to deploy a web application

Learning Linux is NOT hard, but you need to know WHAT to
learn.  Install Linux and all the things that come with it,
and you've got Gigabytes of disc occupied.  As long as 15
years ago, I was giving Unix courses, and taking a beginner
from "What's Unix" through to the most advanced of topics we
could provide a total of 4 weeks of training.  But that was
rarely all necessary.  Firstly, you only need certain
aspects that relate to your use.   Secondly, once you have
an overview you can pick up a great deal more from books,
tutorials and other examples (and at a time you need them
too, not all in a bunched course!).  At Well House
Consultants we offer a "LAMP deployment" course of 4 days
that consists of the following three elements:
	One day of Linux User basics
	One day of Linux Administration basics
	Two days of Apache, MySQL, Perl, PHP configuration and overview

This four day LAMP course is designed to introduce all the
aspects that a newcomer to Linux (probably with a Windows
background) needs to get already-written applications in PHP
/ Perl / Python, using MySQL up and running on an Apache
server, and the configuration of that server.  If you're
going to want to write or modify existing web applications,
you'll additionally want to consider a programming language
course if you're not familiar with one of the "P" languages,
and perhaps a MySQL course if you're not familiar with
design and programming of relational databases.

Predictions for the Web

Where is the web going?   Much more to becoming an
application interface, such as LAMP supports.  There will
remain many "plain HTML" pages out there to provide
information and support services, but more and more they're
providing the backup to appications.  Sometimes the
applications are subtle - for example, each of the pages on
our web site will tell you to call "01225 708225" to reach
us if you're viewing our site from within the UK, but it
will tell you to call "01144 1225 708225" if you're visiting
our site from the USA or Canada.  "Data Mining" is a term
often used.

As regards these LAMP applications, fewer of them will be
written but each of them that is written will get far wider
user.  I've mentioned a number of such applications above,
and one of our team (Leah, who joined us recently) is very
particularly an expert in their availability, use and
deployment - that's the way we see things going. You still
need to know a lot of the Linux stuff  to use them (though
probably not in the same depth that you would as a
developer), but their use makes the LAMP tool all the more
cost effective in providing solutions.

A long article answer there; to summarise, LAMP is an
exciting "grouping"; technically much more appropriate than
.net or Java alternatives for the majority of applications
(I can tell you about the minority of applications where I
would recommend Java over a pint sometime, perhaps!).



See also Linux, Apache, MySQL, PHP / Perl deployment
Our ref: lampover/general-adding-server-side-applications-using-lamp-technologies
At Well House Consultants, we provide training courses on subjects such as Perl, Python, Tcl/Tk, PHP and MySQL. We're asked (and answer) many questions, and answers to those which are of general interest are published in this directory. Please also see Our privacy policy and copyright statement.

If you would like to learn more about us, this web site also includes a Listing and schedule of public courses, and information about Specially Run Courses and Private Courses.


WELL HOUSE CONSULTANTS LTD
404, The Spa • Melksham, Wiltshire SN12 6QL • United Kingdom
PHONE: 01144 1225 708225 • FACSIMILE 01144 1225 707126 • EMAIL: info@wellho.net
You are currently on our United States site. Change your country
Updated Thursday, April 25th 2024 Privacy and Copyright Statement © 2024