1# $MirOS: src/usr.sbin/httpd/src/Configuration.tmpl,v 1.3 2005/10/21 11:09:46 tg Exp $
2#
3# Config file for the Apache httpd.
4
5# Configuration.tmpl is the template for Configuration. Configuration should
6# be edited to select the modules to be included as well as various flags
7# for Makefile.
8
9# The template should only be changed when a new system or module is added,
10# or an existing one modified. This will also most likely require some minor
11# changes to Configure to recognize those changes.
12
13# There are 5 types of lines here:
14
15# '#' comments, distinguished by having a '#' as the first non-blank character
16#
17# Makefile options, such as CC=gcc, etc...
18#
19# Rules, distinguished by having "Rule" at the front. These are used to
20# control Configure's behavior as far as how to create Makefile.
21#
22# Module selection lines, distinguished by having 'AddModule' at the front.
23# These list the configured modules, in priority order (highest priority
24# last).  They're down at the bottom.
25#
26# Optional module selection lines, distinguished by having `%Module'
27# at the front.  These specify a module that is to be compiled in (but
28# not enabled).  The AddModule directive can be used to enable such a
29# module.  By default no such modules are defined.
30
31################################################################
32# SSL support:
33#
34# o Set SSL_BASE to either the directory of your OpenSSL source tree or the
35#   installation tree. Alternatively you can also use the value 'SYSTEM' which
36#   then indicates that OpenSSL is installed under various system locations.
37#
38# o Disable SSL_COMPAT rule to build mod_ssl without backward compatibility
39#   code for Apache-SSL 1.x, mod_ssl 2.0.x, Sioux 1.x and Stronghold 2.x.
40#
41# o The SSL_SDBM rule controls whether the built-in SDBM library should be
42#   used instead of a custom defined or vendor supplied DBM library.  Use the
43#   value 'default' for automatic determination or use 'yes' to force the use
44#   of SDBM in case the vendor DBM library is buggy or restricts the data
45#   sizes too dramatically.
46#
47# o The SSL_EXPERIMENTAL rule can be used to enable still experimental code
48#   inside mod_ssl. These are usually new features which need some more
49#   testing before they can be considered stable. So, enable this on your own
50#   risk and only when you like to see Apache+mod_ssl dump core ;-)
51#
52# o The SSL_CONSERVATIVE rule can be used to disable some non-conservative
53#   code inside mod_ssl. These are usually recently introduced features
54#   which some people still want to consider unstable. So, to be maximum
55#   conservative, one can enable this flag and this way remove such code.
56#
57# o The SSL_VENDOR rule can be used to enable code inside mod_ssl which can be
58#   used by product vendors to extend mod_ssl via EAPI hooks without patching
59#   the source. Additionally ssl_vendor*.c source files are automatically
60#   picked up by the compilation process.
61
62#SSL_BASE=/usr/local/ssl
63Rule SSL_COMPAT=yes
64Rule SSL_SDBM=default
65Rule SSL_EXPERIMENTAL=no
66Rule SSL_CONSERVATIVE=no
67Rule SSL_VENDOR=no
68
69################################################################
70# Makefile configuration
71#
72# These are added to the general flags determined by Configure.
73# Edit these to work around Configure if needed. The EXTRA_* family
74# will be added to the regular Makefile flags. For example, if you
75# want to compile with -Wall, then add that to EXTRA_CFLAGS. These
76# will be added to whatever flags Configure determines as appropriate
77# and needed for your platform.
78#
79# You can also set the compiler (CC) and optimization (OPTIM) used here as
80# well.  Settings here have priority; If not set, Configure will attempt to
81# guess the C compiler, looking for gcc first, then cc.
82#
83# Optimization note:
84# Be careful when adding optimization flags (like -O3 or -O6) on the OPTIM
85# entry, especially when using some GCC variants. Experience showed that using
86# these for compiling Apache is risky. If you don't want to see Apache dumping
87# core regularly then at most use -O or -O2.
88#
89# The EXTRA_DEPS can be used to add extra Makefile dependencies to external
90# files (for instance third-party libraries) for the httpd target. The effect
91# is that httpd is relinked when those files are changed.
92#
93EXTRA_CFLAGS=
94EXTRA_LDFLAGS=
95EXTRA_LIBS=
96EXTRA_INCLUDES=
97EXTRA_DEPS=
98
99#CC=
100#CPP=
101#OPTIM=
102#RANLIB=
103
104################################################################
105# Name of the installed Apache HTTP webserver.
106#
107#TARGET=
108
109################################################################
110# Extended API (EAPI) support:
111#
112# EAPI:
113#   The EAPI rule enables more module hooks, a generic low-level hook
114#   mechanism, a generic context mechanism and shared memory based pools.
115#
116# EAPI_MM:
117#   Set the EAPI_MM variable to either the directory of a MM Shared Memory
118#   Library source tree or the installation tree of MM. Alternatively you can
119#   also use the value 'SYSTEM' which then indicates that MM is installed
120#   under various system locations. When the MM library files cannot be found
121#   the EAPI still can be built, but without shared memory pool support, of
122#   course.
123
124Rule EAPI=no
125#EAPI_MM=SYSTEM
126
127################################################################
128# Dynamic Shared Object (DSO) support
129#
130# There is experimental support for compiling the Apache core and
131# the Apache modules into dynamic shared object (DSO) files for
132# maximum runtime flexibility.
133#
134# The Configure script currently has only limited built-in
135# knowledge on how to compile these DSO files because this is
136# heavily platform-dependent. The current state of supported and
137# explicitly unsupported platforms can be found in the file
138# "htdocs/manual/dso.html", under "Supported Platforms".
139#
140# For other platforms where you want to use the DSO mechanism you
141# first have to make sure it supports the pragmatic dlopen()
142# system call and then you have to provide the appropriate
143# compiler and linker flags below to create the DSO files on your
144# particular platform.
145#
146# The placement of the Apache core into a DSO file is triggered
147# by the SHARED_CORE rule below while support for building
148# individual Apache Modules as DSO files and loading them under
149# runtime without recompilation is triggered by `SharedModule'
150# commands. To be able to use the latter one first enable the
151# module mod_so (see corresponding `AddModule' command below).
152# Then enable the DSO feature for particular modules individually
153# by replacing their `AddModule' command with `SharedModule' and
154# change the filename extension from `.o' to `.so'.
155#
156# Sometimes the DSO files need to be linked against other shared
157# libraries to explicitly resolve symbols from them when the
158# httpd program not already contains references to them. For
159# instance when buidling mod_auth_db as a DSO you need to link
160# the DSO against the libdb explicity because the Apache kernel
161# has no references for this library. But the problem is that
162# this "chaining" is not supported on all platforms. Although one
163# usually can link a DSO against another DSO without linker
164# complains the linkage is not really done on these platforms.
165# So, when you receive "unresolved symbol" errors under runtime
166# when using the LoadModule directive for a particular module try
167# to enable the SHARED_CHAIN rule below.
168
169#CFLAGS_SHLIB=
170#LD_SHLIB=
171#LDFLAGS_SHLIB=
172#LDFLAGS_SHLIB_EXPORT=
173
174Rule SHARED_CORE=default
175Rule SHARED_CHAIN=default
176
177################################################################
178# Rules configuration
179#
180# These are used to let Configure know that we want certain
181# functions. The format is: Rule RULE=value
182#
183# At present, only the following RULES are known: WANTHSREGEX, SOCKS4,
184# SOCKS5, IRIXNIS, IRIXN32, PARANOID, and DEV_RANDOM.
185#
186# For all Rules except DEV_RANDOM, if set to "yes", then Configure knows
187# we want that capability and does what is required to add it in. If set
188# to "default" then Configure makes a "best guess"; if set to anything
189# else, or not present, then nothing is done.
190#
191# SOCKS4:
192#  If SOCKS4 is set to 'yes', be sure that you add the socks library
193#  location to EXTRA_LIBS, otherwise Configure will assume
194#  "-L/usr/local/lib -lsocks"
195#
196# SOCKS5:
197#  If SOCKS5 is set to 'yes', be sure that you add the socks5 library
198#  location to EXTRA_LIBS, otherwise Configure will assume
199#  "-L/usr/local/lib -lsocks5"
200#
201# PARANOID:
202#  New with version 1.3, during Configure modules can run
203#  pre-programmed shell commands in the same environment that
204#  Configure runs in. This allows modules to control how Configure
205#  works. Normally, Configure will simply note that a module
206#  is performing this function. If PARANOID is set to yes, it will
207#  actually print-out the code that the modules execute
208#
209
210Rule SOCKS4=no
211Rule SOCKS5=no
212Rule IRIXNIS=no
213Rule IRIXN32=yes
214Rule PARANOID=no
215Rule CYGWIN_WINSOCK=no
216Rule INET6=no
217
218# DEV_RANDOM:
219#  Note: this rule is only used when compiling mod_auth_digest.
220#  mod_auth_digest requires a cryptographically strong random seed for its
221#  random number generator. It knows two ways of getting this: 1) from
222#  a file or device (such as "/dev/random"), or 2) from the truerand
223#  library. If this rule is set to 'default' then Configure will choose
224#  to use /dev/random if it exists, else /dev/urandom if it exists,
225#  else the truerand library. To override this behaviour set DEV_RANDOM
226#  either to 'truerand' (to use the library) or to a device or file
227#  (e.g. '/dev/urandom'). If the truerand library is selected, Configure
228#  will assume "-L/usr/local/lib -lrand".
229Rule DEV_RANDOM=/dev/arandom
230
231# The following rules should be set automatically by Configure. However, if
232# they are not set by Configure (because we don't know the correct value for
233# your platform), or are set incorrectly, you may override them here.
234# If you have to do this, please let us know what you set and what your
235# platform is, by filling out a problem report form at the Apache web site:
236# <http://bugs.apache.org/>.  If your browser is forms-incapable, you
237# can get the information to us by sending mail to apache-bugs@apache.org.
238#
239# WANTHSREGEX:
240#  Apache requires a POSIX regex implementation. Henry Spencer's
241#  excellent regex package is included with Apache and can be used
242#  if desired. If your OS has a decent regex, you can elect to
243#  not use this one by setting WANTHSREGEX to 'no' or commenting
244#  out the Rule. The "default" action is "yes" unless overruled
245#  by OS specifics
246
247Rule WANTHSREGEX=default
248
249################################################################
250# Module configuration
251#
252# Modules are listed in reverse priority order --- the ones that come
253# later can override the behavior of those that come earlier.  This
254# can have visible effects; for instance, if UserDir followed Alias,
255# you couldn't alias out a particular user's home directory.
256
257# The configuration below is what we consider a decent default
258# configuration.  If you want the functionality provided by a particular
259# module, remove the "#" sign at the beginning of the line. But remember,
260# the more modules you compile into the server, the larger the executable
261# is and the more memory it will take, so if you are unlikely to use the
262# functionality of a particular module you might wish to leave it out.
263
264## mod_mmap_static is an experimental module, you almost certainly
265## don't need it.  It can make some webservers faster.  No further
266## documentation is provided here because you'd be foolish
267## to use mod_mmap_static without reading the full documentation.
268
269# AddModule modules/experimental/mod_mmap_static.o
270
271## mod_vhost_alias provides support for mass virtual hosting
272## by dynamically changing the document root and CGI directory
273## based on the host header or local IP address of the request.
274## See "../htdocs/manual/vhosts/mass.html".
275
276# AddModule modules/standard/mod_vhost_alias.o
277
278##
279## Config manipulation modules
280##
281## mod_env sets up additional or restricted environment variables to be
282## passed to CGI/SSI scripts.  It is listed first (lowest priority) since
283## it does not do per-request stuff.
284
285AddModule modules/standard/mod_env.o
286
287## mod_define expands variables on arbitrary directive lines.
288## It requires Extended API (EAPI).
289
290# AddModule modules/extra/mod_define.o
291
292##
293## Request logging modules
294##
295
296AddModule modules/standard/mod_log_config.o
297
298## Optional modules for NCSA user-agent/referer logging compatibility
299## We recommend, however, that you just use the configurable access_log.
300
301# AddModule modules/standard/mod_log_agent.o
302# AddModule modules/standard/mod_log_referer.o
303
304##
305## Type checking modules
306##
307## mod_mime_magic determines the type of a file by examining a few bytes
308## of it and testing against a database of filetype signatures.  It is
309## based on the unix file(1) command.
310## mod_mime maps filename extensions to content types, encodings, and
311## "magic" type handlers (the latter is obsoleted by mod_actions, and
312## don't confuse it with the previous module).
313## mod_negotiation allows content selection based on the Accept* headers.
314
315# AddModule modules/standard/mod_mime_magic.o
316AddModule modules/standard/mod_mime.o
317AddModule modules/standard/mod_negotiation.o
318
319##
320## Content delivery modules
321##
322## The status module allows the server to display current details about
323## how well it is performing and what it is doing.  Consider also enabling
324## the 'ExtendedStatus On' directive to allow full status information.
325## Please note that doing so can result in a palpable performance hit.
326
327AddModule modules/standard/mod_status.o
328
329## The Info module displays configuration information for the server and
330## all included modules. It's very useful for debugging.
331
332# AddModule modules/standard/mod_info.o
333
334## mod_include translates server-side include (SSI) statements in text files.
335## mod_autoindex handles requests for directories which have no index file
336## mod_dir handles requests on directories and directory index files.
337## mod_cgi handles CGI scripts.
338
339AddModule modules/standard/mod_include.o
340AddModule modules/standard/mod_autoindex.o
341AddModule modules/standard/mod_dir.o
342AddModule modules/standard/mod_cgi.o
343
344## The asis module implements ".asis" file types, which allow the embedding
345## of HTTP headers at the beginning of the document.  mod_imap handles internal
346## imagemaps (no more cgi-bin/imagemap/!).  mod_actions is used to specify
347## CGI scripts which act as "handlers" for particular files, for example to
348## automatically convert every GIF to another file type.
349
350AddModule modules/standard/mod_asis.o
351AddModule modules/standard/mod_imap.o
352AddModule modules/standard/mod_actions.o
353
354##
355## URL translation modules.
356##
357
358## The Speling module attempts to correct misspellings of URLs that
359## users might have entered, namely by checking capitalizations
360## or by allowing up to one misspelling (character insertion / omission /
361## transposition/typo). This catches the majority of misspelled requests.
362## If it finds a match, a "spelling corrected" redirection is returned.
363
364# AddModule modules/standard/mod_speling.o
365
366## The UserDir module for selecting resource directories by user name
367## and a common prefix, e.g., /~<user> , /usr/web/<user> , etc.
368
369AddModule modules/standard/mod_userdir.o
370
371## The Alias module provides simple URL translation and redirection.
372
373AddModule modules/standard/mod_alias.o
374
375## The URL rewriting module allows for powerful URI-to-URI and
376## URI-to-filename mapping using a regular expression based
377## rule-controlled rewriting engine.
378
379# AddModule modules/standard/mod_rewrite.o
380
381##
382## Access control and authentication modules.
383##
384AddModule modules/standard/mod_access.o
385AddModule modules/standard/mod_auth.o
386
387## The anon_auth module allows for anonymous-FTP-style username/
388## password authentication.
389
390# AddModule modules/standard/mod_auth_anon.o
391
392## db_auth and dbm_auth work with Berkeley DB files - make sure there
393## is support for DBM files on your system.  You may need to grab the GNU
394## "gdbm" package if not and possibly adjust EXTRA_LIBS. (This may be
395## done by Configure at a later date)
396
397# AddModule modules/standard/mod_auth_dbm.o
398# AddModule modules/standard/mod_auth_db.o
399
400## "digest" implements HTTP Digest Authentication rather than the less
401## secure Basic Auth used by the other modules.  This is the old version.
402
403# AddModule modules/standard/mod_digest.o
404
405## "auth_digest" implements HTTP/1.1 Digest Authentication (RFC 2617)
406## rather than the less secure Basic Auth used by the other modules.
407## This is an updated version of mod_digest, but it is not as well tested
408## and is therefore marked experimental.  Use either the one above, or
409## this one below, but not both digest modules.
410## Note: if you add this module in then you might also need the
411## truerand library (available for example from
412## ftp://research.att.com/dist/mab/librand.shar) - see the Rule
413## DEV_RANDOM above for more info.
414##
415## Must be added above (run later than) the proxy module because the
416## WWW-Authenticate and Proxy-Authenticate headers are parsed in the
417## post-read-request phase and it needs to know if this is a proxy request.
418
419# AddModule modules/experimental/mod_auth_digest.o
420
421## Optional Proxy
422##
423## The proxy module enables the server to act as a proxy for outside
424## http and ftp services. It's not as complete as it could be yet.
425## NOTE: You do not want this module UNLESS you are running a proxy;
426##       it is not needed for normal (origin server) operation.
427
428# AddModule modules/proxy/libproxy.a
429
430## Optional response header manipulation modules.
431##
432## cern_meta mimics the behavior of the CERN web server with regards to
433## metainformation files.
434
435# AddModule modules/standard/mod_cern_meta.o
436
437## The expires module can apply Expires: headers to resources,
438## as a function of access time or modification time.
439
440# AddModule modules/standard/mod_expires.o
441
442## The headers module can set arbitrary HTTP response headers,
443## as configured in server, vhost, access.conf or .htaccess configs
444
445# AddModule modules/standard/mod_headers.o
446
447## Miscellaneous modules
448##
449## mod_usertrack is the new name for mod_cookies.  This module
450## uses Netscape cookies to automatically construct and log
451## click-trails from Netscape cookies, or compatible clients who
452## aren't coming in via proxy.
453##
454## You do not need this, or any other module to allow your site
455## to use Cookies.  This module is for user tracking only
456
457# AddModule modules/standard/mod_usertrack.o
458
459## The example module, which demonstrates the use of the API.  See
460## the file modules/example/README for details.  This module should
461## only be used for testing -- DO NOT ENABLE IT on a production server.
462
463# AddModule modules/example/mod_example.o
464
465## mod_unique_id generates unique identifiers for each hit, which are
466## available in the environment variable UNIQUE_ID.  It may not work on all
467## systems, hence it is not included by default.
468
469# AddModule modules/standard/mod_unique_id.o
470
471## mod_so lets you add modules to Apache without recompiling.
472## This is an experimental feature at this stage and only supported
473## on a subset of the platforms we generally support.
474## Don't change this entry to a 'SharedModule' variant (Bootstrapping!)
475
476# AddModule modules/standard/mod_so.o
477
478## mod_setenvif lets you set environment variables based on the HTTP header
479## fields in the request; this is useful for conditional HTML, for example.
480## Since it is also used to detect buggy browsers for workarounds, it
481## should be the last (highest priority) module.
482
483AddModule modules/standard/mod_setenvif.o
484
485## mod_keynote adds RFC 2704 KeyNote-based authentication support.
486## It requires that mod_ssl also be configured in order to function.
487
488# AddModule modules/keynote/mod_keynote.o
489
490## mod_ssl incorporates SSL into Apache.
491## It must stay last here to be first in execution to
492## fake basic authorization.
493
494# AddModule modules/ssl/libssl.a
495