Apache Week
Issue 109, 3rdApril1998:

Copyright 2020 Red Hat, Inc

In this issue

Apache: Over One Million Servers

Over a million sites are now hosted with the Apache web server, according to the April Netcraft Server Survey. This gives Apache a 47.85% share of all the surveyed sites, rising to 52.45% if the servers definitely identified as being based on Apache code are also included. Apache is the first server to run on more that a million sites, and the nearest other server, Microsoft IIS, is run on less than half a million sites (21.73%). Apache's share has increased by just over 1% since last month, whilst Microsoft's has gone up by slightly more than a tenth of a percent. Netscape and NCSA dropped by 0.16% and 0.21% respectively.

Apache Status

Apache Site: www.apache.org
Release: 1.2.6 (Released 24th March 1998) (local download sites)
Beta: 1.3b5 (Released 19th February 1998) (local download sites)

Apache 1.2.6 is the current stable release. Users of Apache 1.2.5 and earlier should upgrade to this version since it fixes a number of bugs and potential security problems.

The bugs listed below now include a link to the entry in the Apache bug database where the problem is being tracked. These entries are called "PR"s (Problem Reports). Some bugs do not correspond to problem reports if they are found by developers.

Bugs found in 1.3b5

These bugs have been found in 1.3 and will be fixed in the next beta (1.3b6)

  • RLimitCPU was not working on Solaris because Apache ignores with SIGXCPU signal, and this was being inherited by child processes. Similarly for RLimitMEM and SIGXFSZ. PR#2009.
  • Using RewriteCond with -l to test for links was not working. PR#2010.
  • Using Options +Includes when Options IncludesNoExec is in force did not re-enable "exec" includes.

Patches for bugs in Apache 1.2.6 may be made available in the apply_to_1.2.6 subdirectory of the patches directory on the Apache site (this directory may not exist if no patches are available). Some new features and other unofficial patches are available in the 1.2 patches directory (these may not apply cleanly to 1.2.6). For details of all previously reported bugs, see the Apache bug database and known bugs pages. Many common configuration questions are answered in the Apache FAQ.

Development has slowed down to prepare for the release of Apache 1.3. During the beta release cycle Apache is in a "feature freeze" where no major new features will be added.

New Build Process

The traditional way to build Apache on Unix is to do the following steps:

  • Copy Configuration.tmpl to Configuration
  • Edit Configuration
  • Run ./Configure
  • Run make

The second step is where you configure various compilation options, and choose which modules to build. This will continue to work for future 1.3 releases. However a new method of configuration will come with 1.3b6 and later which should simplify the build process in many cases.

The new configuration process uses a new script, configure, which creates the required configuration based on command line parameters. This program takes arguments to specify which modules are to be built, what directories are to be used for the installed files, and whether dynamic (shared) modules are to be used. This is similar to the configure program that comes with many other software projects. Details of how to use configure are in the INSTALL file which will come with Apache.

One of the main advantages of configure is that it is used to set the final installation directories, as well as (optionally) paths to required files such as configuration files. These get compiled into Apache, and the "make install" step correctly installs all the required Apache files into the appropriate locations.

Another advantage is that modules are selected without having to edit the Configuration file by hand, and it will be easy to configure some or all modules to be built and loaded as dynamic modules. Also the interface to this program will be familar for people used to projects configured by "autoconf" (although Apache does not use autoconf itself to automatically configure the build process).

Helper for Building Dynamic Modules

The next beta of Apache will include much better support for dynamic modules on Unix. Dynamic modules (also called "dynamic shared objects" or "DSO") lets you load modules into the server while it is running, to extend its functionality without recompiling or stopping the server. This is now supported on a range of operating systems, and the new build process (see above) provides options to enable dynamic modules, and to build modules ready for dynamic loading. When a module is built as a "dynamic module" it ends with an extension of ".so" and can be loaded into Apache with the LoadModule directive. (The operating systems which support dynamic modules are Linux, FreeBSD, Solaris, SunOS, IRIX, OSF1 and UnixWare).

Once you have Apache compiled with dynamic module support, adding additional modules normally involves re-configuring Apache and then recompiling it, along with the new modules to be built. However a new support tool, apxs, has been added to the src/support directory. This is a perl program which lets you build dynamic modules without having to reconfigure or recompile Apache itself. This tool obtains the configuration information from the Apache build, then builds the module for dynamic loading, installs it into the live Apache directory and adds the required LoadModule line to the Apache configuration files. All you have to do is send a USR1 signal to Apache (typically with the apachectl script) to get it to re-read the configuration and load in the new module without affecting transfers in progress.

While initially designed for small modules (those contained in a single file), the apxs tool is also capable of building large modules for dynamic loading. It comes with information about how to build PHP3 as a dynamic module (this will require a recent version of PHP3).

Apache Licence Udated

Everyone that uses Apache, either as a program or by using the source code, is subject to the Apache licence. This licence places no restrictions on the use of source code or the binaries, unless they are being redistributed. In this case, it requires a notice about Apache in advertising and in the redistribution itself.

The current licence also specifies that the names "Apache Server" and "Apache Group" must not be used to endorse or promote the redistributed product. However the licence did not contain reference to the word "Apache" itself, although the intention was clear. So from the next release the licence will include an additional restriction: products derived from Apache code must not include the name "Apache" in their name.

Apache in the News

Inter@ctive Week reports on the divergence between embedded web servers and servers for traditional operating systems in Web Servers: Offering More Services. It also covers the multiprocess versus multithreaded issue for web servers, where Apache for Unix is multiprocess but some other servers (for example, IIS on NT) are multithreaded. It does not mention that Apache is in fact multithreaded on NT. Apache is also developed by a group of individuals, and does not have a "lead developer".

NewsBytes covers the Netcraft survey figures, in Apache Web Server Tops 1million Internet Sites.