A BRIEF HISTORY OF THE WORLDWIDE WEB
It's server side technologies that allow you to check on the current status of airline flights, 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 out there such as Wikis, YaBB, SMF, 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 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
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 applications. 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
Please note that articles in this section of our
web site were current and correct to the best of our ability when published,
but by the nature of our business may go out of date quite quickly. The
quoting of a price, contract term or any other information in this area of
our website is NOT an offer to supply now on those terms - please check
back via our main web site