Open source and web admin
by Elena Blanco on 1 June 2005 , last updated
Archived This page has been archived. Its content will not be updated. Further details of our archive policy.
The World Wide Web (the web) is important whether we make use of it in our professional lives or simply for recreation. Increasingly the provision of web based services comprises one of the sysadmin’s many duties. We become responsible for running a small part of the web thereby taking on an additional role of web admin. As more and more software applications rely on the web browser to provide the client end of the application, so we move towards a model employing a web server at the server end. As the web has developed so has the complexity of the technologies in use and a web admin now has to become familiar not only with the administration of the web server but also with the supporting technologies and environments needed by web developers.
The web server arena is one where open source software has one of its greatest success stories. The Apache Software Foundations web server, Apache HTTPD, has been the most popular web server on the Internet since April 1996, according to published surveys Microsofts IIS product is the only other server to have a significant market share.
But the Apache success story does not end there. The Apache web server is just one project of The Apache Software Foundation: there are many other projects underway that provide the supporting and sister technologies and applications used today to provide web based services. These are often embedded within the Apache web server itself but may also be deployed alongside proprietary solutions and products.
The depth and breadth of the Apache Software Foundation’s work is such that it needs a section to itself in this brief survey of open source web admin software. Apache has become so well-known that we could be forgiven for doubting the existence of any other open source web servers. It makes sense then to end this document with some details about other open source web servers.
The Apache Software Foundation
The Apache Software Foundation (ASF), incorporated in 1999, grew from The Apache Group that was formed in 1995 to develop the Apache HTTP server. The ASF aims not only to support its collaborative software development projects in practical ways via the supply of hardware, communication and business infrastructure but also to protect individual volunteers from law suits directed at the ASF’s projects and to provide a legal entity to which resources can be donated. The ASF releases its software principally under the Apache License, version 2.0 (current) or version 1.1 (historic). The ASF also has an important role in protecting the Apache brand.
Visit the ASF’s website if you wish to find out more information about the Apache Software Foundation including a list of their projects.
Those projects that are particularly pertinent to the web admin will now be examined.
Apache HTTPD server (commonly known simply as Apache)
The Apache web server is without doubt the most well known project of the ASF. Development and maintenance of Apache runs as a project itself and its goal is to provide a secure, efficient and extensible server that provides standards compliant HTTP services. Whilst being standards compliant, emphasis is given to developing an implementation that is also robust and fully-featured.
Apache is available for most modern operating systems including Linux, Unix, Mac OS, Novell Netware and Windows.
There are two distinct stable versions of Apache available, versions 1.3.x (legacy) and 2.x (current). Apache 2.x has Unix threading support, better support for non-Unix platforms and a simplified configuration. Extensive changes were made to the server API when Apache 2.0 was produced. So modules designed for the Apache 1.3 API will not work in Apache 2.x without modification.
Another difference between the two versions is how Secure Sockets Layer (SSL) is supported. With Apache 1.3, SSL can be implemented using either the mod_ssl module which must be downloaded separately or by using Apache-SSL which implements SSL functionality as a set of patches to existing Apache source code. With Apache 2.x, the mod_ssl code is contained in the source tree so SSL support simply needs to be specified at compile time: no separate download is required.
Development of mod_ssl happens via the mod_ssl project which is a designated as an ASF sub project. The mod_ssl module uses an open source SSL/TLS toolkit called OpenSSL, which may be familiar to those sysadmins who make use of OpenSSH to connect between machines securely. Via this toolkit, the mod_ssl package provides strong cryptography for the Apache 1.3 webserver via the Secure Sockets Layer (SSL v2/v3) and Transport Layer Security (TLS v1) protocols.
The mod_ssl package was originally derived from software developed by Ben Laurie for use in the Apache-SSL HTTP server project. It was donated to the ASF by Ralf S. Engeschall.
The ASF contains many Java based projects. Originally many (but not all) of these were found under the umbrella of the Apache Jakarta project whose aim is to offer a diverse set of open source Java solutions through a range of sub projects. Whilst Jakarta still exists most of its projects have now become full top level projects within the ASF. Perhaps the best known of these is Apache Tomcat.
Apache Tomcat is the servlet container that is used as the official Reference Implementation for the Java Servlet and JavaServer Pages technologies. The Java Servlet and JavaServer Pages specifications are developed by Sun under the Java Community Process (JCP). The ASF participates in the JCP and ensures that Apache Tomcat tracks the specifications closely. Tomcat is typically used in conjunction with Apache HTTPD. In this arrangement Apache HTTPD serves static content whilst Apache Tomcat serves dynamic content. However, Apache Tomcat can act as its own web server if required. Its common deployment alongside Apache HTTPD takes advantage of the web server’s efficiency and security features whilst allowing Apache Tomcat to serve the Java applications which is, after all, what it was developed for.
Apache HTTPD Modules
Apache HTTPD is modular and provides many extensions that allow it to handle specific situations. For example, many sysadmins are familiar with the Perl programming language and the mod_perl module brings together the power and flexibility of the Perl programming language and the Apache HTTP server. In fact it is even possible to use Perl to manage Apache!
By embedding a Perl interpreter in a web server we have the ability to provide dynamic content that is very fast as we no longer have to start up an external interpreter every time the web server needs to generate some dynamic content. One of the many benefits of using mod_perl is that we find ourselves in the Perl community where there are hundreds of modules available to do all sorts of things. Perhaps we may pick up a module to handle persistent database connections, perhaps we would like a user authentication system… They are all out there to be used. Additionally old CGI scripts can be handled seamlessly and very quickly.
Apache XML projects
The Apache XML project was originally intended to be a focus for XML-related activities within Apache projects. However, like Apache Jakarta, most of its projects have outgrown their original parent and are now top level projects in their own right. Today the ASF has many projects focused on different aspects of XML. The XML project page provides a useful “XML Federation” index that links to all Apache XML related projects. Most of these projects are useful to a web admin doing development work, but a few are also useful to those in a hosting environment.
Savant is a full-featured, easy to use open source web server for the Windows platform. Savant has been written in C++ for the Windows API and although it should therefore compile with any compiler that has been designed for Windows, its developers only guarantee that it will compile with Microsoft Visual C++ 6.0. The source code for Savant 3.0 is freely available under the GNU General Public License (GPL).
Roxen WebServer is a full-featured open source web server distributed under the GPL licence. It is available for a number of different platforms including Linux, Solaris, Mac OS X and Windows. Roxen offers a web based interface for configuration and administration, an integrated MySQL database and strong encryption. It has a strong emphasis on server side programming and the development of modular extensions. Custom modules can be written using Roxen’s support for RXML, Java, PHP and CGI scripting.
AOLserver is an open source web server developed by America Online and released under the Mozilla Public License 1.1. AOLserver has been written in Tcl, a scripting language that is interpreted rather than compiled. It will run on various operating systems including Unix, Linux, and Windows.
AOLserver is a multithreaded, massively-scalable and extensible web server that has been tuned for large scale, dynamic web sites. AOLserver also includes complete database integration and a dynamic page scripting language.
Zope is an open source web application server and so is not strictly a web server, but it does include its own HTTP serving capabilities. Therefore Zope can act as its own web server or it can be used with Apache or other web servers. In addition to HTTP, Zope also includes FTP, WebDAV, and XML-RPC serving capabilities. Zope is primarily written in the Python programming language, and is available for Linux, Solaris and Windows. It is made available under the Zope Public License.
Zope is popular with web developers and can be very useful in situations where there is a requirement for sophisticated content management as it features a transactional object database that can store pretty much anything that a web developer may want to use. Zope is often used with Plone, a content management system that offers a polished interface to Zope’s content management framework.
And finally, … a word about wikis
A wiki is simply a website that not only allows anyone to add content but also allows anyone to edit that content. Its popularity arises from the fact that pages can be created and updated simply by using a web browser. There are many situations that can benefit from an easy to use, fast changing repository but it is particularly suited to collaborative use, perhaps as a place for work colleagues to exchange ideas and brainstorm, perhaps as an information repository for a specific project. A superb example of a wiki can be found in Wikipedia, the free web-based encyclopedia.
There are many developers providing wiki software, and these products are written in a huge variety of languages such as Perl, Python, PHP and Java. To find out more about what is available, visit the wiki page at Wikipedia that gives an enormous list of wiki software.
OSS Watch has produced the Top Tips for Selecting Open Source Software document which provides general advice on choosing open source programs.
- “Web Server Survey”, Netcraft [http://news.netcraft.com/archives/web_server_survey.html]
- Apache Software Foundation [http://www.apache.org/]
- Apache HTTPD server [http://httpd.apache.org/]
- Apache HTTPD server modules index [http://httpd.apache.org/docs/2.2/mod/]
- mod_ssl [http://httpd.apache.org/docs/2.2/mod/mod_ssl.html]
- mod_perl [http://perl.apache.org/]
- Jakarta [http://jakarta.apache.org/]
- Tomcat [http://tomcat.apache.org/]
- Apache XML project [http://xml.apache.org/]
- Savant [http://savant.sourceforge.net/]
- Roxen WebServer [http://www.roxen.com/products/webserver/]
- AOLserver [http://www.aolserver.com/]
- Zope [http://www.zope.org/]
- Plone [http://plone.org/]
- Wikipedia [http://en.wikipedia.org/wiki/Main_Page]
- “List of wiki software”, Wikipedia [http://en.wikipedia.org/wiki/List_of_wiki_software]
Related information from OSS Watch: