Web Magazine for Information Professionals

What Is Apache?

Eddie Young gives the essentials of "Apache", the widely used Unix-based web server software.

Apache is the name of the software that allows you to run a web service on a UNIX server. Apache is very popular and provides access to most web sites on the internet. A recent Netcraft survey of Web Servers around the world placed Apache Powered sites at over 50 percent of the total. Part of the reason for this maybe that it is freely available, reliable and simple to set up and configure, and it can provide most of the requirements for a web site.

Why is Apache Free?

One of the reasons Apache is free is because it is written and maintained by enthusiasts and volunteers, much in the spirit of many UNIX users. It is distributed under the GNU public licence, which means it can be compiled for free on any UNIX platform, including LINUX (Which is a UNIX platform for the PC.) The Apache group work under an open philosophy: the software is written by volunteers which enables it to be distributed free of charge. The underlying belief is that the Internet should remain an open and global system of communication, not ‘owned’ by any one company. This will help to maintain the philosophy with which the web was originaly created and to keep tools for online publishing in the hands of everyone.

Additionally Apache benefits from being an open system in that its users often contribute to it, by writing enhancements, bug fixes, or writing documentation. Potentially anyone in the world can add improvements to the Apache server. In practice the contribution by individuals is fairly slim, however, because the development of the software is carefully monitored to ensure its robustness. But it does mean that Apache ( as with any ‘freeware’) develops organically and by its end-users. This can’t neccesarily be said about commercial software.

Apache Logo

How is Apache implemented?

The source code can be downloaded from the Apache home pages at http://www.apache.org/. It is then compiled onto the server that will support the web pages and set up by editing a number of text based configuration files. These files command how the service will operate - such as rejecting accesses from particular machines (creating a firewall security); or defining directories that will run script files, such as cgi, or perl. You can set up Server-Side Includes (which are programs that are executed when a certain web page is accessed), or redirections for broken links.

One of the advantages of this text based style is that the administrator has complete control over everything that Apache is capable of doing using a simple text editor, but it does mean that there isn’t a GUI administration interface as there is with many modern programs, and so the learning curve is naturally steeper. Also you cannot, at the present time, reconfigure Apache through a web browser, as you can with some of the Windows servers.

Once the Apache code is compiled, configured and run, the software runs continually as a UNIX daemon, making files in a particular directory available over the internet. A set of text log files are created that can be used to monitor accesses to pages and any errors that might have occurred. These can be useful for producing statistics on the pages people read, or for addressing and solving any problems with your website that might arise.

What documentation and extras are available?

Since the software is free there is a wealth of material on the internet describing setting it up and configuring it. A search on http://www.altavista.com will turn up as much as you might need, and there are newsgroups (such as: <comp.infosystems.www.servers.unix>, etc.) subscribed to by other Apache users that can help with many problems and questions.

Because you can download the source code for Apache it is entirely open. If you want to check what it does and how it is written then the code is entirely readable before compiling it. This means that, in theory at least, an administrator can tweak and customise the code for personal preference before running it.

Apache can be extended with personal, custom written add-ons in the form of modules. These add extra functionality that can’t be found in the original code. The Apache project encourages this, and information about writing your own Apache modules is available at http://modules.apache.org/reference. Details of the current prewritten modules and download areas can be found at http://modules.apache.org/.

There are plans to make Apache available for NT users, and beta software is available. But at the moment the performance is not as good as that on the UNIX machines. Not because NT is slower, but the Apache programmers are still working on streamlining the NT version.

Author Details

Eddie Young
Email: e.young@ukoln.ac.uk
UKOLN: http://www.ukoln.ac.uk/
Tel: 01225 826450
Address: UKOLN, University of Bath, Bath, BA2 7AY