Home Accessibility Courses Diary The Mouth Forum Resources Site Map About Us Contact
 
For 2023 (and 2024 ...) - we are now fully retired from IT training.
We have made many, many friends over 25 years of teaching about Python, Tcl, Perl, PHP, Lua, Java, C and C++ - and MySQL, Linux and Solaris/SunOS too. Our training notes are now very much out of date, but due to upward compatability most of our examples remain operational and even relevant ad you are welcome to make us if them "as seen" and at your own risk.

Lisa and I (Graham) now live in what was our training centre in Melksham - happy to meet with former delegates here - but do check ahead before coming round. We are far from inactive - rather, enjoying the times that we are retired but still healthy enough in mind and body to be active!

I am also active in many other area and still look after a lot of web sites - you can find an index ((here))
Web applications using LAMP technologies

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 accessibility 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 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

Related Material

Object Orientation and General technical topics - General Technical Subjects
  [462] - ()
  [2099] - ()
  [2322] - ()
  [2568] - ()
  [2800] - ()
  [3112] - ()
  [3213] - ()

Web Application Deployment - The Components of a Web-Based Solution
  [34] - ()
  [49] - ()
  [166] - ()
  [367] - ()
  [433] - ()
  [442] - ()
  [510] - ()
  [673] - ()
  [924] - ()
  [1176] - ()
  [1198] - ()
  [1265] - ()
  [1496] - ()
  [2099] - ()
  [2896] - ()
  [3891] - ()

Talks and lectures
  [62] - ()
  [99] - ()
  [128] - ()
  [134] - ()
  [247] - ()
  [310] - ()
  [924] - ()
  [1101] - ()
  [1242] - ()
  [1419] - ()
  [1422] - ()
  [1459] - ()
  [3221] - ()
  [3351] - ()
  [3834] - ()
  [4284] - ()

resource index - Deployment
Solutions centre home page

You'll find shorter technical items at The Horse's Mouth and delegate's questions answered at the Opentalk forum.

At Well House Consultants, we provide training courses on subjects such as Ruby, Lua, Perl, Python, Linux, C, C++, Tcl/Tk, Tomcat, PHP and MySQL. We're asked (and answer) many questions, and answers to those which are of general interest are published in this area of our site.

You can Add a comment or ranking to this page

© WELL HOUSE CONSULTANTS LTD., 2024: Well House Manor • 48 Spa Road • Melksham, Wiltshire • United Kingdom • SN12 7NY
PH: 01144 1225 708225 • FAX: 01144 1225 793803 • EMAIL: info@wellho.net • WEB: http://www.wellho.net • SKYPE: wellho

PAGE: http://www.wellho.net/solutions/general- ... ogies.html • PAGE BUILT: Wed Mar 28 07:47:11 2012 • BUILD SYSTEM: wizard