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