Apache web server
Introduction
“The Apache HTTP Server Project is a collaborative software development effort aimed at creating a robust, commercial-grade, featureful, and freely-available source code implementation of an HTTP (Web) server. The project is jointly managed by a group of volunteers located around the world, using the Internet and the Web to communicate, plan, and develop the server and its related documentation”. (Apache HTTP Server Project, retrieved 08:18, 29 May 2009 (UTC)).
Most educational web applications run on a traditional web server, and most of these use Apache plus the MySQL database server plus a server-side scripting language, PHP in particular. Even non-technical people might consider learning how to install a webserver/MySQL/PHP bundle on a PC in order to try out various software such as learning management systems.
Software and installation
Currently (May 2009) there exist three versions:
- The 2.2.x series. Unless there is a good reason for using an older series (e.g. specific modules that you need), take this one.
- The 2.0.x series
- The 1.3.x series
- Getting the source
You can compile the server, but generally speaking it is easier to install a binary version (see below)
Installing compiled http packages
The Apache web server runs on most operating system and on most, it has become really easy to install it.
- On Linux, it may be preinstalled, else you can get it through a package manager.
- See the WAMP article for hints on using Apache/MySQL/Php bundles for a Windows PC. You also can download a binary version from apache, but installing "WAMP" package is easier.
- On Solaris, there are pre-installed versions. However we suggest either compiling it or getting a newer version from Sunfreeware.com.
Configuration
The webserver is configured by editing hte http.conf configuration file that usually sits the installation_directory/conf/http.conf.
See the Directive Quick Reference
DSO modules
Apache server has an extension mechanism that allows to add modules without recompiling the server.
“The Apache HTTP Server is a modular program where the administrator can choose the functionality to include in the server by selecting a set of modules. The modules can be statically compiled into the httpd binary when the server is built. Alternatively, modules can be compiled as Dynamic Shared Objects (DSOs) that exist separately from the main httpd binary file. DSO modules may be compiled at the time the server is built, or they may be compiled and added at a later time using the Apache Extension Tool (apxs).” (Dynamic Shared Object (DSO) Support, retrieved 08:40, 29 May 2009 (UTC)).
Links
General
- Apache HTTP Server (Wikipedia).
Manuals
FAQs and Forums
- Apache HTTP Server Wiki (includes tips and tricks]
- FAQ (very minimal).
- Apache Week (discontinued weekly, but still useful)
Basic Authentication
- Basic Authentication with Apache by Sukrit Dhandhania, Webreference.com, 2009.