The Under Development section returns this week after a short
break for coverage of ApacheCon 2001.
The Apache 2.0 beta release, 2.0.16, sufferred from some
issues with thread handling in the threaded MPM which Paul J.
Reder and others have been trying to solve. A new release,
2.0.17, was made ready for testing but some problems still
remain affecting server shutdown.
There has been a large amount of discussion surrounding the
research done by Harrie Hazewinkel on adding multi-protocol
support to Apache. The goal of this work is that support for
protocols such as FTP or POP3 can be added as modules to
Apache, and that the HTTP protocol itself is just another
Apache module. This has proved somewhat controversial as some
group members argue that such a fundamental change should not
hold up Apache 2.0 development and should be delayed until a
later release. Nevertheless, an initial patch from Ryan Bloom
has been reviewed and refined and may be committed soon.
Development of the Apache 2.0 proxy module has continued at a
brisk pace over the last few weeks, the code now having
working support for HTTP/1.1, the CONNECT method, proxying to
FTP servers, and experimentally, IPv6. Graham Leggett,
leading the development team, has also used the Apache 2.0
"generic hooks" mechanism to split the protocol-specific
handling (HTTP and FTP) into separate modules from the proxy
As covered in previous
issues, the mod_proxy CVS tree was recently separated
from the Apache 2.0 repository. After the uptake of
development and maintenance of this module, Chuck Murcko has
proposed that the development tree is merged back in.
The Apache Bench ab program received a major overhaul
from Dirk-Willem van Gulik. Sander Temme discovered that
integer over-runs and error handling problems were causing ab
to produce plausible but incorrect results: Dirk fixed these,
and added basic SSL support as well as some extra statistical
analysis. The changes have been checked in to both the Apache
2.0 and 1.3 trees.
Apache 1.3 has also seen the integration of support for the
platform. Cygwin is a Unix emulation layer for Windows.
In this section we highlight some of the articles on the web
that are of interest to Apache users.
"Performance Tuning by Tweaking Apache Configuration",
Stas Bekman demonstrates how to fine-tune the
StartServers, MaxClients, and
MaxRequestsPerChild directives to maximise the
usage of your system resources and to ensure good
performance. He uses the ApacheBench (ab) utility to
benchmark the Apache Web server with around ten different
combinations of parameter settings in the tweaking process.
IBM developerWorks provides a
tutorial (free registration required) about the Apache
directory structure. It looks at a few methods on how to
determine the directory layout of your Apache installation
before moving on to creating your own customised layout.
From the Developer Shed, we have "Democracy,
The PHP Way" which is all about building a simple
Web-enabled online polling system using PHP and mySQL
database. After this, you'll know how to create a poll with
three possible responses for each question, a graphical
report in the form of a bar graph and a form to allow new
questions to be added easily to the system while picking up
on image and cookie manipulation PHP functions.
Oier Blasco shows us how to write a suite of tests using PhpUnit to verify
that PHP code is working correctly in "Debugging
PHP". For those into Extreme Programming
(XP), this will fit right in the testing process as all
the tests can then be executed automatically in a single step
thus saving a lot of time.
Last week (Apache Week
issue #242) we covered events at ApacheCon 2001 in Santa
Clara. We made a couple of mistakes in the story, firstly it
was Doug Tidwell and not Giacomo Pati that gave the talk on
Cocoon 2 (we got it right later in the article). We've also
been informed that the inflatable camels were really
inflatable kangaroos given away by Synop Pty, Ltd, which
could explain the strange looks I got when walking around the
show floor asking everyone for an inflatable camel.