The release this week of Windows Server 2003 Web Server edition is putting low-cost web servers firmly on the agenda of corporate IT. Microsoft is bringing out a new product in a market that has traditionally been the home of open-source solutions. Generally rolled out under the business radar, small web servers and web applications have been assisting teams and project groups, even providing quick wins for companies that want to develop a low-cost web presence.
The key to the explosion of small web applications is the combination of four key technologies: Linux, Apache, MySQL and Perl (or PHP or Python), often known by the acronym Lamp. Originally popularised by German open-source groups, the Lamp name is now so widespread it's turning up in job descriptions for web developer roles.
Between them, these technologies deliver everything you need to quickly produce rough and ready web applications. The Apache web server and Linux are already well known, and the MySQL relational database has been gaining visibility outside open-source circles in recent months. Add an integrated scripting language and you have a web application platform.
Choosing an appropriate scripting environment is a complex decision, and often comes down to a developer's personal preferences. Common choices are Perl, or PHP. Perl has a long history of working well with Apache, and is most useful for text and form processing. PHP is newer, and works well for creating dynamic web pages. Developers will find similarities between PHP and Macromedia's Cold Fusion, as both add tags to web pages to control how content is displayed.
Lamp-based systems aren't complex application servers delivering large scale e-commerce sites. Instead, developers can take advantage of well-known scripting techniques dating back to the early days of the web to build straightforward database-driven sites. Administrators and developers can bootstrap their way into Lamp using collected Linux and Apache HOWTO documentation, and sites such as O'Reilly's. Archive sites such as the CPAN Perl archive are full of code snippets and pre-built modules to reduce development time.
There's often no need to reinvent the wheel. As the Lamp platform is so common, many open-source web applications will install and run with minimal configuration. In most cases, there are only a few simple steps to follow, usually creating database tables and passwords. Once installed, applications are configured and managed using web browsers.
One area where Lamp has begun to shine is the blogging world. Tools like the popular Movable Type blogging system rely on the presence of most of the key components of a Lamp solution. Web-based configuration and a content database allow for complex applications, and common Perl libraries make it easy to link Moveable Type to other applications.
The Nuke family of portal content management tools are a popular choice for Lamp applications. These applications, and their libraries of back-end modules and display blocks, make building a discussion-driven portal a matter of a few downloads and a little configuration. With tools for managing file uploads and users, a project team can quickly assign roles, and start using their portal to share documents and ideas. Other Lamp applications include image libraries and discussion forums. A phpBB forum can quickly turn a static site into a thriving community.
Knowledge management has been an industry buzzword for some time now, but it's rarely been as successful as was hoped for. It has never been easy to develop a culture of sharing knowledge, and dedicated knowledge management solutions are expensive. Quickly dropping in a project-specific Lamp solution using a content management system like Slash (best known as the system behind the Linux-advocacy site Slashdot) or PHP-Nuke can encourage a project-level information sharing culture.
Lamp isn't just for small internal applications. O'Reilly Books uses it as the basis for such complex sites as the Meerkat technology news aggregator, while the state of Rhode Island uses a Lamp solution to manage its rules and regulations website. Educational institutions are turning to Lamp for pan-European collaborative projects.
Commodity hardware is the key to successful Lamp deployment. PCs bought from such stores as PC World for a few hundred pounds make ideal basic Lamp platforms. Once the hardware is loaded with an off-the-shelf Linux distribution, it takes only an hour or two to put together a Lamp system with the web server ready to go, one or more databases running, and the appropriate scripting environments ready.
It doesn't matter whether it is Red Hat, Mandrake or SUSE, as the technologies that form the basis of Lamp are part and parcel of all the major Linux distributions. Just don't expect to have a high availability solution; this isn't high-end, fault-tolerant hardware.
Server appliances with reduced administration overheads are an attractive alternative. Sun's server appliance division, formerly Cobalt, produces rack-mounting Pentium III systems with a custom Linux kernel, bundled administration tools, and all the software you need to build Lamp applications, as well as Java tools. ISPs are finding Lamp appliances such as Sun's Cobalt Raq 550 a cost-effective tool for hosting several websites on a single system. Users can manage their own sites, but a central management tool lets the ISP control their access and privileges.
Businesses can also take advantage of appliance solutions. A single server appliance, installed in the company datacentre, is a useful host for ad hoc web application development. Simple management policies keep the system under control and make sure users adhere to security and acceptable usage policies.
This way, developers can share best practices and libraries of tools to reduce risks, analysing successful applications using the lessons learned as the basis of larger scale developments, rather than having umpteen pilot projects left on a small server under someone's desk.