In this issue
A new release of the stable 1.2 version of Apache is just
about to be announced. This fixes a few bugs in the latest
release, 1.2.1, and users should probably upgrade to 1.2.2
when it is available.
The main bugs fixed are:
-
Reduce pause at end of transfers in some cases
-
Merge <Directory> and <Location> sections in a
virtual host after merging sections from the main server
-
Prevent multiple merging of the same <Directory>
section
-
Fix loop in mod_imap when file referred is above document
root
-
Stop mod_auth_anon logging sub-requests
-
Get mod_info to indent <Files> sections
-
Read HTTP/1.1 request bodies if present even if not used
-
Fix mod_negotiation algorythm
In addition, Apache 1.2.2 has a work-around for a bug in
Microsoft Internet Explorer 4 PR 2 which cannot understand
HTTP/1.1 responses. And it works around the bug in Solaris
2.5.1 and all earlier releases which can make Apache fail to
rebind to the network socket after a HUP.
Release: 1.2.1 (Released 6th July 1997) (local download
sites)
Beta: None
Alpha: 1.3a1 (Released 23rd July 1997) (local download
sites)
Patches to Apache 1.2 bugs will be made available in the apply
to 1.2.1 directory on the Apache site. Some new features
and other unofficial patches are available in the 1.2
patches directory. For details of all previously reported
bugs, see the Apache bug database and
Known
Bugs page. Many common configuration questions are
answered in the Apache FAQ.
The module which builds perl in Apache is now released at
version 1.00. This is a powerful enhancement to Apache that
lets you embed perl into HTML, provides a much faster method
of running Perl than normal CGI, and even lets you write
Apache modules in Perl!
The mod_perl annoucement summarises the potential of this
module: "The Apache/Perl integration project brings together
the full power of the Perl programming language and the
Apache HTTP server. This is achieved by linking the Perl
runtime library into the server and providing an object
oriented Perl interface to the server's C language API. These
pieces are seamlessly glued together by the `mod_perl' server
plugin, making it is possible to write Apache modules
entirely in Perl. In addition, the persistent interpreter
embedded in the server avoids the overhead of starting an
external interpreter and the penalty of Perl start-up
(compile) time."
For more details see the Apache/Perl integration homepage at
perl.apache.org. The
module is available from there or the CPAN network.
Unless otherwise noted, all the new features discussed here
are planned for Apache 1.3 and not Apache 1.2.1.
Directory Filename Matching
The <Directory> directive takes an
argument of a filename, which can include a "*" to match
multiple characters. This is used to apply configuration
information to particular directories only. For example,
<Directory /home/*/public_html> could be
used to match paths under the /home directory which include
"public_html" somewhere in the path. However the matching
used in Apache is different to that used by the Unix shell.
For example, the "*" character matches all characters,
including slash characters.
A future release of Apache may change the filename matching
to:
-
? and * do not match slash characters
-
The character matching construct [...] can be
used
These changes would also apply to <Location>
and <Files> sections as well.
Finally, in current releases sections can include full
regular expressions which are compared at the same time as
the non-regular expressions. As part of these changes,
regular expressions will only be checked after all
non-regular expressions have been checked. Additional
debugging information to display how sections are being
merged may also be provided.
Documentation Project
There has been some discussion about creating an Apache
Documentation Project. This would document Apache fully and
in multiple formats suitable non-only for online viewing but
also printing and downloading. At the moment all
documentation is written in HTML pages as given on the Apache
site. Documentation is generally updated by the developers
when new features are added or when bugs are found. While the
documents should be fairly complete and show all Apache
directives and functions, they may tend to lack overviews and
introductory information. The documentation project may help
provide this sort of information.
On a similar subject, the issue of localising Apache and
www.apache.org to other languages has been discussed. As far
as Apache goes, the code could be updated to store all its
text messages in a single file which can be selected for
particular languages. Both Unix and Windows provide a way to
do this using language resources. This will probably not
appear in Apache 1.3.
For both Apache and the site there are issues involved with
keeping translated information up to date. This should be ok
for languages which Apache developers can speak, but for
other languages where a translation is provided by someone
else it will soon get out of date.
Virtual Hosting Improvements
The way Apache handles virtual hosts has been improved. This
is an attempt to make it clearer how Apache deals with the
various types of hosts that can be configured:
-
IP-based virtual hosts
-
Name-based virtual hosts
-
The "main" server
-
Any default server (_default_)
In addition, the internal storage of virtual hosts has been
changed from a linked list to a hash to make selecting a host
quicker, especially on sites with large numbers of hosts.
The algorythm for selecting a virtual host is now:
-
Find matching IP virtual host for the IP of the incoming
connections (this might match the main server)
-
If that fails, match the main server anyway
-
If the main server has been matched, look for matching
named-based information (ServerName, ServerAlias and
ServerPath directives) in name-based virtual hosts
-
If no server matched, look for the _default_ virtual host
Module API Adds Socket Pool
The Apache module API has functions to ensure that system
resources such as file descriptors are not leaked. Instead of
using the normal OS function calls, special "pool" calls,
such as popen() are used instead. When the
request is finished with these pools of system resources are
recovered by Apache. Now socket descriptors can be added to
the pool of resources, using the psocket()
function.
TechWeb's Real
Apache, Real Nets shows the advantages of using Apache as
an Intranet server. This is part of a large set of pages
about constructing an Intranet which largely concentrates on
Windows NT server systems. The Apache article is part of a
"reality" check about what many people are really using
today.
|