Apache Week
   Issue 71, 27th June 1997:  

Copyright 1996-2005
Red Hat, Inc.

In this issue

Apache Status

Release: 1.2 (Released 5th June 1997) (local download sites)
Beta: None

Bugs in 1.2:
  • If a request is made for a symbolic link to a directory, the contents of any .htaccess inside the target directory is used to determine if the symlink is allowed here.
Bugs fixed in next release:
  • Problem that could cause a "malloc" error when using regular expressions.
  • Added support for Maxion/OS SVR4.2 Real Time Unix, NonStop-UX, UnixWare 2.1.2, DEC cc compiler on Ultrix,
  • Large numbers of virtual hosts can cause problems due to lack of file descriptors (see below)
  • Linux compilation problems on Alpha and Sparc hardware, or on Intel when kernel is compiled without shared memory (see below)

Patches to Apache 1.2 bugs will be made available in the 1.2 patches directory on the Apache site. This directory also includes some minor new features which did not make it into the 1.2 release. 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.

Virtual Hosts Run out of File Descriptors

Some operating systems have problems due to a lack of file descriptors. This can cause sites with large numbers of virtual hosts to fail, especially if more descriptors are used for multiple log files or when using Listen. This problem can usually be reduced by increasing the number of descriptors allowed per process. However there can be additional problems caused by third-party libraries which can only use low-numbered file descriptors (for example, some recent versions of bind, the DNS resolver library). In addition Solaris 2 has a specific problem meaning that it cannot use more than access file descriptors above 256 as streams.

The next release of Apache will incorporate code to alleviate these problems. This code will attempt to leave a few file descriptors available for libraries that cannot use high-numbered descriptors. And for Solaris it will try to always use descriptors above 256, leaving the values below 256 for use by file streams.

Linux Fixes

Apache now outputs a more informative error message if it is run on a system without "shared memory". Normally most versions of Linux support system-V style shared memory, which is used for the "scoreboard" shared by all Apache processes. But some people compile the kernel without System-V shared memory, which makes Apache fail to run with the error "Could not call shmget". Now Apache will explain that the kernel needs recompiling with the CONFIG_SYSVIPC flag set.

There are also some slight differences between Linux on non-Intel hardware systems (Alpha and Sparc). These are now automatically detected and the correct configurations set.

Log Levels for the Error Log

The error log file does not only log errors: it also logs warnings and some purely informational messages. For some sites the number of warnings and information messages logged can hide real problems and take unnecessary disk space. For example, a site with lots of slow modem clients might get lots of "send lost connection to client" warnings. A possible future enhancement to Apache would allow Apache to be configured to log messages based on their importance - for example, it could be told to only log errors.

Directory Index Icon Size

In the next release, additional options IconHeight and IconWidth can be given on the IndexOptions line to specify the width and height of icons returned in a directory index.

More Powerful Alias and Redirects

There has been some discussion about extended the functionality of Alias and Redirect directives to allow regular expressions. At the moment, these directives can only match an initial part of a URL and change it inot another initial part. The use of regular expressions would give much more flexibility. At the moment, this can be done using the rewrite module (mod_rewrite), but this is not part of the standard Apache configuration, and the rewrite rules can be quite complex to understand.

Allowing Extra Fields in htpasswd Files

Authentication password files, typically called .htpasswd, have the format "username:password". In the future it will probably be possible to store additional information after the password field, separated by a colon. This is a similar format to the standard /etc/password file, although it is highly recommended that Web passwords are not the same as login passwords.

Reducing DNS Lookups

The currently distributed configuration files set the HostnameLookups directive to On. This means Apache tries to convert the IP address of the calling client into a hostname for every request, which causes extra resource use and often uncessary processing. From the next release the distributed configuration files will default this directive to Off. The main effect of this will be that the log files will contain IP addresses rather than hostnames. Log analysis software should be capable of efficiently translating these IP numbers into names.

Apache Serves up the Pages

On a topical note, the Wimbledon Tennis Championship pages at www.wimbledon.org are using Apache to serve up news about the latest serves on court. At least rain does not stop Apache's services. Other sports sites using Apache include the US Masters at www.masters.org and the Australian Open at www.ausopen.org.

Comments or criticisms? Please email us at editors@apacheweek.com