1.11. New Features in Apache v2
The procedure for configuring and compiling Apache has changed, as we
will see later.
High-level decisions about the way Apache works internally can now be
made at compile time by including one of a series of Multi Processing
Modules (MPMs). This is done by attaching a flag to
configure:
./configure <other flags> --with_mpm=<name of MPM>
Although MPMs are rather like ordinary modules, only
one can be used at a time. Some of them are
designed to adapt Apache to different operating systems; others offer
a range of different optimizations for Unix.
It will be shown, along with the other compiled-in modules, by
executing httpd -l. When we went to press,
these were the possible MPMs under Unix:
- prefork
-
Default. Most closely imitates behavior of v1.3. Currently the
default for Unix and sites that require stability, though we hope
that threading will become the default later on.
- threaded
-
Suitable for sites that require the benefits brought by threading,
particularly reduced memory footprint and improved interthread
communications. But see "prefork"
earlier in this list.
- perchild
-
Allows different hosts to have different user IDs.
- mpmt_pthread
-
Similar to prefork, but each child process has a specified number of
threads. It is possible to specify a minimum and maximum number of
idle threads.
- Dexter
-
Multiprocess, multithreaded MPM that allows you to specify a static
number of processes.
- Perchild
-
Similar to Dexter, but you can define a seperate user and group for
each child process to increase server security.
Other operating systems have their own MPMs:
- spmt_os2
-
For OS2.
- beos
-
For the Be OS.
- WinNT
-
Win32-specific version, taking advantage of completion ports and
native function calls to give better network performance.
To begin with, accept the default MPM. More advanced users should
refer to http://httpd.apache.org/docs-2.0/mpm.html and
http://httpd.apache.org/docs-2.0/misc/perf-tuning.html.
See the entry for the AcceptMutex directive in Chapter 3.
1.11.1. Config File Changes in v2
Version 2.0 makes the following changes to the Config file:
-
CacheNegotiatedDocs now takes the argument
on/off. Existing instances of
CacheNegotiatedDocs should be given the
argument on.
-
ErrorDocument
<HTTP error
number>
"<message>" now needs quotes around
the <message>, not just at the
start.
-
The AccessConfig and
ResourceConfig directives have been
abolished. If you want to use these files, replace them by
Include conf/srm.conf Include conf/access.conf
in that order, and at the end of the Config file.
-
The BindAddress directive has been
abolished. Use Listen.
-
The ExtendedStatus directive has been
abolished.
-
The ServerType directive has been
abolished.
-
The AgentLog,
ReferLog, and
ReferIgnore directives have been removed
along with the mod_log_agent and
mod_log_referer modules. Agent and referer
logs are still available using the
CustomLog directive.
-
The AddModule and
ClearModule directives have been
abolished. A very useful point is that Apache v2 does not care about
the order in which DSOs are loaded.
1.11.2. httpd Command-Line Changes
Running the v2 httpd with the flag
-h to show the possible command-line flags
produces this:
Usage: ./httpd [-D name] [-d directory] [-f file]
[-C "directive"] [-c "directive"]
[-v] [-V] [-h] [-l] [-L] [-t] [-T]
Options:
-D name : define a name for use in <IfDefine name> directives
-d directory : specify an alternate initial ServerRoot
-f file : specify an alternate ServerConfigFile
-C "directive" : process directive before reading config files
-c "directive" : process directive after reading config files
-v : show version number
-V : show compile settings
-h : list available command line options (this page)
-l : list compiled in modules
-L : list available configuration directives
-t -D DUMP_VHOSTS : show parsed settings (currently only vhost settings)
-t : run syntax check for config files (with docroot check)
-T : run syntax check for config files (without docroot check)
In particular, the -X flag has been removed. You can get the same
effect — running a single copy of Apache without any children
being generated — with this:
httpd -D ONE_PROCESS
or:
httpd -D NO_DETACH
depending on the MPM used. The available flags for each MPM will be
visible on running httpd with
-?.
1.11.3. Module Changes in v2
Version 2.0 makes the following changes to module handling:
-
mod_auth_digest is now a standard module
in v2.
-
mod_mmap_static, which was experimental in
v1.3, has been replaced by mod_file_cache.
-
Third-party modules written for Apache v1.3 will not work with v2
since the API has been completely rewritten. See Chapter 20 and Chapter 21.
 |  |  | | 1.10. Building Apache 1.3.X Under Unix |  | 1.12. Making and Installing Apache v2 Under Unix |
Copyright © 2003 O'Reilly & Associates. All rights reserved.
|