Jeremy Stallard's Site

LAMP – Linux, Apache, MySQL, PHP (or Perl, or Python)

Back in the early 1990’s when the world wide web was first being developped, and the first spam message was retaliated against by email-bombing the senders ISP’s mail server, the web pages were mainly static content written in straight HTML files. There was a variety of web servers to choose from, but all of them did basically the same thing.. Listen on port 80 for incoming connections, receive the request, and respond with the static file.

Things have changed. Many of the web pages and on-line commerce sites are no longer static HTML files, but are LAMP driven, relying on session information and cookies, as well as the server side processing capabilities of PHP.

LAMP is an acronym for one of the most popular configurations of web server setup in use today. Actual statistics on the percentage of Apache webservers in use compared to Microsoft IIS web servers seems to vary from day to day.. My favorite quote regarding these statistics is “Never trust a statistic that you didn’t forge yourself (http://4sysops.com/archives/iis-vs-apache-can-statistics-provide-an-argument/)”.  In general, however, it is accepted that Linux running Apache is the platform of choice for most web hosting services. Add in MySQL as the database to use along with it, and then a CMS or other PHP based set of pages to extract the data from the MySQL database and generate the dynamic content to go along with it, and suddenly you have a very robust system. Instead of a set of static pages that require a code monkey to go in and modify and get everything to look right, you have an application where content creators simply create one page’s “content” a page at a time with a nice WYSIWYG editor, and then submit it into the database. The application then takes care of making sure the page has the same look and feel as the rest of the site and is accessible through the menu system.

The best thing about the LAMP system is the licensing cost. New computers are getting cheaper and cheaper. You can find a decent one for less than $300 that comes without an operating system (or you can keep your old one that you were going to get rid of because it doesn’t play all the new video games), you can then download one of the many Linux distributions, and then install and configure Linux, MySQL, and PHP, and then test things out yourself.  Licensing is almost entirely under the GNU public license (there is a commercial licensing fee for distribution of MySQL, but for most applications regarding websites, there isn’t a charge). This gives users a chance to try everything out themselves, with a commonly used set of components.

To be fair, other configurations which also work if you prefer Microsoft products are a Windows server running Internet Information Server, Microsoft SQL server, and .NET and ASP programming. You can also install Apache, MySQL and PHP on a Windows System, it’s just not done as often for a number of reason (one of the main being the large amount of support for applications developed for the LAMP environment).

As a place to start exploring the possibilities, users can start with latest Linux installation (such as with Fedora or Suse), Apache, MySQL, and PHP (default in many installations if you specify one of the webserver installation options).

Then users can download one of the many PHP CMS applications such as CMS Made Simple, WordPress, Joomla, Drupal, or Elgg.  Then you follow the directions included in the download to set up the MySQL database to work with the system.

As a related note, please be careful and keep an eye on your installation. Many of the Wiki’s, Forums, Social Web Sites and other sites that “out of the box” allow for user interaction and posting of information have been targetted by spammers who now use automated software to post thousands of links around the internet to link back to their sites or promote their products. If you allow such feedback and posts, you can expect to spend a good portion of your time monitoring and deleting spam.