]> granicus.if.org Git - apache/blob - docs/manual/programs/configure.xml
improve this document step by step:
[apache] / docs / manual / programs / configure.xml
1 <?xml version='1.0' encoding='UTF-8' ?>
2 <!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
3 <?xml-stylesheet type="text/xsl" href="../style/manual.en.xsl"?>
4 <manualpage metafile="configure.xml.meta">
5 <parentdocument href="./">Programs</parentdocument>
6
7   <title>configure - Configure the source tree</title>
8
9 <summary>
10     <p>The <code>configure</code> script configures the source tree
11     for compiling and installing the Apache HTTP Server on your
12     particular platform. Various options allow the compilation of a
13     server corresponding to your personal requirements.</p>
14
15     <p>This script, included in the root directory of the distribution,
16     is for compilation on Unix and Unix-like systems only. For other
17     platforms, see the <a href="../platform/">platform</a>
18     documentation.</p>
19 </summary>
20
21 <seealso><a href="../install.html">Compiling and Installing</a></seealso>
22
23 <section id="synopsis"><title>Synopsis</title>
24     <p>You should call the <code>configure</code> script from within the
25     root directory of the distribution.</p>
26
27     <p><code><strong>./configure</strong> [<var>OPTION</var>]...
28     [<var>VAR</var>=<var>VALUE</var>]...</code></p>
29
30     <p>To assign environment variables (e.g. <code>CC</code>,
31     <code>CFLAGS</code> ...), specify them as
32     <code><var>VAR</var>=<var>VALUE</var></code>. See <a href="#env">below</a>
33     for descriptions of some of the useful variables.</p>
34 </section>
35
36 <section id="options"><title>Options</title>
37   <ul>
38     <li><a href="#configurationoptions">Configuration options</a></li>
39     <li><a href="#installationdirectories">Installation directories</a></li>
40     <li><a href="#systemtypes">System types</a></li>
41     <li><a href="#optionalfeatures">Optional features</a></li>
42     <li><a href="#supportopt">Options for support programs</a></li>
43   </ul>
44
45   <section id="configurationoptions"><title>Configuration options</title>
46
47     <p>The following options influence the behavior of
48     <code>configure</code> itself.</p>
49
50     <dl>
51       <dt><code>-C</code></dt>
52       <dt><code>--config-cache</code></dt>
53       <dd>This is an alias for <code>--cache-file=config.cache</code></dd>
54
55       <dt><code>--cache-file=<var>FILE</var></code></dt>
56       <dd>The test results will be cached in file <var>FILE</var>.
57         This option is disabled by default.</dd>
58
59       <dt><code>-h</code></dt>
60       <dt><code>--help [short|recursive]</code></dt>
61       <dd>Output the help and exit. With the argument <code>short</code> only
62         options specific to this package will displayed. The argument
63         <code>recursive</code> displays the short help of all the included
64         packages.</dd>
65
66       <dt><code>-n</code></dt>
67       <dt><code>--no-create</code></dt>
68       <dd>The <code>configure</code> script is run normally but does
69         not create output files. This is useful to check the test results
70         before generating makefiles for compilation.</dd>
71
72       <dt><code>-q</code></dt>
73       <dt><code>--quiet</code></dt>
74       <dd>Do not print <code>checking ...</code> messages during the
75         configure process.</dd>
76
77       <dt><code>--srcdir=<var>DIR</var></code></dt>
78       <dd>Defines directory <var>DIR</var> to be the source file directory.
79         Default is the directory, where configure is located, or the parent
80         directory <code>..</code>.</dd>
81
82       <dt><code>--silent</code></dt>
83       <dd>Same as <code>--quiet</code></dd>
84
85       <dt>-V</dt>
86       <dt>--version</dt>
87       <dd>Display copyright information and exit.</dd>
88     </dl>
89   </section>
90
91   <section id="installationdirectories"><title>Installation 
92     directories</title>
93
94     <p>These options define the installation directory. The installation
95       tree depends on the selected layout.</p>
96
97     <dl>
98       <dt><code>--prefix=<var>PREFIX</var></code></dt>
99       <dd>Install architecture-independent files in <var>PREFIX</var>.
100         By default the installation directory is set to
101         <code>/usr/local/apache2</code>.</dd>
102
103       <dt><code>--exec-prefix=<var>EPREFIX</var></code></dt>
104       <dd>Install architecture-dependent files in <var>EPREFIX</var>.
105         By default the installation directory is set to the
106         <var>PREFIX</var> directory.</dd>
107     </dl>
108
109     <p>By default, <code>make install</code> will install all the files in
110       <code>/usr/local/apache2/bin</code>, <code>/usr/local/apache2/lib</code>
111       etc. You can specify an installation prefix other than
112       <code>/usr/local/apache2</code> using <code>--prefix</code>,
113       for instance <code>--prefix=$HOME</code>.</p>
114
115     <section id="layout"><title>Define a directory layout</title>
116       <dl>
117         <dt><code>--enable-layout=<var>LAYOUT</var></code></dt>
118         <dd>Configure the source code and build scripts to assume an
119           installation tree based on the layout <var>LAYOUT</var>. This allows
120           you to separately specify the locations for each type of file within
121           the Apache HTTP Server installation. The <code>config.layout</code>
122           file contains several example configurations, and you can also create
123           your own custom configuration following the examples. The different
124           layouts in this file are grouped into <code>&lt;Layout
125             FOO&gt;...&lt;/Layout&gt;</code> sections and referred to by name as
126           in <code>FOO</code>. The default layout is <code>Apache</code>.</dd>
127       </dl>
128     </section>
129
130     <section id="directoryfinetuning"><title>Fine tuning of the installation
131       directories</title>
132     
133       <p>For better control of the installation directories, use the options
134         below. Please note that the directory defaults are set by
135         <code>autoconf</code> and be overwritten by the corresponding layout
136         setting.</p>
137
138       <dl>
139         <!-- only apr-config and apu-config are installed at bindir.
140         everything else is stored at sbindir. ==> clarify/change this -->
141         <dt><code>--bindir=<var>DIR</var></code></dt>
142         <dd>Install user executables in <var>DIR</var>. The user executables
143           are supporting programs like <code>htpasswd</code>,
144           <code>dbmmanage</code>, etc. which are useful for site
145           administrators. By default <var>DIR</var> is set to
146           <code><var>EPREFIX</var>/bin</code>.</dd>
147
148         <dt><code>--datadir=<var>DIR</var></code></dt>
149         <dd>Install read-only architecture-independent data in <var>DIR</var>.
150           By default <code>datadir</code> is set to
151           <code><var>PREFIX</var>/share</code>. This option is offered by
152           <code>autoconf</code> and currently unused.</dd>
153
154         <dt><code>--includedir=<var>DIR</var></code></dt>
155         <dd>Install C header files in <var>DIR</var>. By default
156           <code>includedir</code> is set to
157           <code><var>EPREFIX</var>/include</code>.</dd>
158
159         <dt><code>--infodir=<var>DIR</var></code></dt>
160         <dd>Install info documentation in <var>DIR</var>.
161           By default <code>infodir</code> is set to
162           <code><var>PREFIX</var>/info</code>. This option is currently
163           unused.</dd>
164         
165         <dt><code>--libdir=<var>DIR</var></code></dt>
166         <dd>Install object code libraries in <var>DIR</var>. By default
167           <code>libdir</code> is set to
168           <code><var>EPREFIX</var>/lib</code>.</dd>
169
170         <dt><code>--libexecdir=<var>DIR</var></code></dt>
171         <dd>Install the program executables (i.e., shared modules) in
172           <var>DIR</var>. By default <code>libexecdir</code> is set to
173           <code><var>EPREFIX</var>/libexec</code>.</dd>
174
175         <dt><code>--localstatedir=<var>DIR</var></code></dt>
176         <dd>Install modifiable single-machine data in <var>DIR</var>.
177           By default <code>localstatedir</code> is set to
178           <code><var>PREFIX</var>/var</code>. This option is offered by
179           <code>autoconf</code> and currently unused.</dd>
180
181         <dt><code>--mandir=<var>DIR</var></code></dt>
182         <dd>Install the man documentation in <var>DIR</var>. By default 
183           <code>mandir</code> is set to
184           <code><var>EPREFIX</var>/man</code>.</dd>
185       
186         <dt><code>--oldincludedir=<var>DIR</var></code></dt>
187         <dd>Install C header files for non-gcc in <var>DIR</var>.
188           By default <code>oldincludedir</code> is set to
189           <code>/usr/include</code>. This option is offered by
190           <code>autoconf</code> and currently unused.</dd>
191         
192         <dt><code>--sbindir=<var>DIR</var></code></dt>
193         <dd>Install the system administrator executables in <var>DIR</var>.
194           Those are server programs like <code>httpd</code>,
195           <code>apachectl</code>, <code>suexec</code>, etc. which are neccessary
196           to run the Apache HTTP Server. By default <code>sbindir</code> is
197           set to <code><var>EPREFIX</var>/sbin</code>.</dd>
198
199         <dt><code>--sharedstatedir=<var>DIR</var></code></dt>
200         <dd>Install modifiable architecture-independent data in <var>DIR</var>.
201           By default <code>sharedstatedir</code> is set to
202           <code><var>PREFIX</var>/com</code>. This option is offered by
203           <code>autoconf</code> and currently unused.</dd>
204
205         <dt><code>--sysconfdir=<var>DIR</var></code></dt>
206         <dd>Install read-only single-machine data like the server configuration
207           files <code>httpd.conf</code>, <code>mime.types</code>, etc. in
208           <var>DIR</var>. By default <code>sysconfdir</code> is set to
209           <code><var>PREFIX</var>/etc</code>.</dd>
210       </dl>        
211     </section>
212   </section>
213   
214   <section id="systemtypes"><title>System types</title>
215
216     <p>These options are used to cross-compile the Apache HTTP Server to run on
217       another system. In normal cases, when building and running the server on
218       the same system, these options are not used.</p>
219
220     <dl>
221       <dt><code>--build=<var>BUILD</var></code></dt>
222       <dd>Defines the system type of the system on which the tools are being
223         built. It defaults to the result of the script
224         <code>config.guess</code>.</dd>
225
226       <dt><code>--host=<var>HOST</var></code></dt>
227       <dd>Defines the system type of the system on which the server will run.
228         <var>HOST</var> defaults to <var>BUILD</var>.</dd>
229
230       <dt><code>--target=<var>TARGET</var></code></dt>
231       <dd>Configure for building compilers for the system type
232         <var>TARGET</var>. It defaults to <var>HOST</var>. This option is
233         offered by <code>autoconf</code> and not necessary for the Apache HTTP
234         Server.</dd>
235     </dl>
236   </section>
237
238   <section id="optionalfeatures"><title>Optional Features</title>
239
240     <p>These options are used to fine tune the features your HTTP server will
241       have.</p>
242
243     <section id="generaloptfeat"><title>General syntax</title>
244       <p>Generally you can use the following syntax to enable or disable a
245         feature:</p>
246
247       <dl>
248         <dt><code>--disable-<var>FEATURE</var></code></dt>
249         <dd>Do not include <var>FEATURE</var>. This is the same as
250           <code>--enable-<var>FEATURE</var>=no</code>.</dd>
251
252         <dt><code>--enable-<var>FEATURE</var>[=<var>ARG</var>]</code></dt>
253         <dd>Include <var>FEATURE</var>. The default value for <var>ARG</var> 
254           is <code>yes</code>.</dd>
255
256         <dt><code>--enable-<var>MODULE</var>=shared</code></dt>
257         <dd>The corresponding module will be build as DSO module.</dd>
258
259         <dt><code>--enable-<var>MODULE</var>=static</code></dt>
260         <dd>By default enabled modules are linked statically. You can force 
261           this explicitly.</dd>
262       </dl>
263     </section>
264
265     <section id="modules"><title>Enable or disable discrete modules</title>
266       <p>Some modules are compiled by default and have to be disabled
267         explicitly while other modules have to be enabled explicitly or by
268         using the keywords <code>most</code> or <code>all</code> (see
269         <code>--enable-mods-shared</code> below for further explanation) to be
270         available. Therefore use the options below.</p>
271
272       <dl>
273         <dt><code>--disable-actions</code></dt>
274         <dd>Disable action triggering on requests, which is provided by
275           <module>mod_actions</module>.</dd>
276
277         <dt><code>--disable-alias</code></dt>
278         <dd>Disable the mapping of requests to different parts of the filesystem,
279           which is provided by <module>mod_alias</module>.</dd>
280
281         <dt><code>--disable-asis</code></dt>
282         <dd>Disable support for as-is filetypes, which is provided by
283           <module>mod_asis</module>.</dd>
284
285         <dt><code>--disable-auth</code></dt>
286         <dd>Disable user-based access control provided  by
287           <module>mod_auth</module>.</dd>
288
289         <dt><code>--disable-autoindex</code></dt>
290         <dd>Disable the directory listing functionality provided by
291           <module>mod_autoindex</module>.</dd>
292
293         <dt><code>--disable-access</code></dt>
294         <dd>Disable host-based access control provided by
295           <module>mod_access</module>.</dd>
296
297         <dt><code>--disable-cgi</code></dt>
298         <dd><module>mod_cgi</module>, which provides support for CGI scripts, is
299           enabled by default when using a non-threaded MPM. Use this option to
300           disable CGI support.</dd>
301
302         <dt><code>--disable-cgid</code></dt>
303         <dd>When using the threaded MPMs <module>worker</module> or
304           <module>perchild</module> support for CGI scripts is provided by
305           <module>mod_cgid</module> by default. To disable CGI support use this
306           option.</dd>
307
308         <dt><code>--disable-charset-lite</code></dt>
309         <dd>Disable character set translation provided by
310           <module>mod_charset_lite</module>. This module will be installed by
311           default only on EBCDIC systems.</dd>
312
313         <dt><code>--disable-dir</code></dt>
314         <dd>Disable directory request handling provided by
315           <module>mod_dir</module>.</dd>
316
317         <dt><code>--disable-env</code></dt>
318         <dd>Enable setting and clearing of environment variables, which is
319           provided by <module>mod_env</module>.</dd>
320
321         <!-- configure mentions enable-http, but disable-http would make much
322         more sense -->
323         <dt><code>--disable-http</code></dt>
324         <dd>Disable the HTTP protocol handling. The <code>http</code> module is
325           a basic one, enabling the server to function as an HTTP server. It is
326           only useful to disable it if you want to use another protocol module
327           instead. <strong>Don't disable this module unless you are really sure
328             what you are doing.</strong><br/>
329           Note: This module will always be linked statically.</dd> 
330
331         <dt><code>--disable-imap</code></dt>
332         <dd>Disable support for server based imagemaps, which provided by
333           <module>mod_imap</module>.</dd>
334
335         <dt><code>--disable-include</code></dt>
336         <dd>Disable Server Side Includes provided by
337           <module>mod_include</module>.</dd>
338
339         <dt><code>--disable-log-config</code></dt>
340         <dd>Disable the logging configuration provided by
341           <module>mod_log_config</module>.</dd>
342
343         <dt><code>--disable-mime</code></dt>
344         <dd>Disable the mapping of file-extensions to MIME, which is provided by
345           <module>mod_mime</module>.</dd>
346
347         <dt><code>--disable-negotiation</code></dt>
348         <dd>Disable content negotiation provided by
349           <module>mod_negotiation</module>.</dd>
350
351         <dt><code>--disable-setenvif</code></dt>
352         <dd>Disable support for basing environment variables on headers, which
353           is provided by <module>mod_setenvif</module>.</dd>
354
355         <dt><code>--disable-status</code></dt>
356         <dd>Enable the process/thread monitoring, which is provided by
357           <module>mod_status</module>.</dd>
358
359         <dt><code>--disable-userdir</code></dt>
360         <dd>Disable the mapping of requests to user-specific directories, which
361           is provided by <module>mod_userdir</module>.</dd>
362
363         <dt><code>--enable-auth-anon</code></dt>
364         <dd>Enable anonymous user access provided by
365           <module>mod_auth_anon</module>.</dd>
366
367         <dt><code>--enable-auth-dbm</code></dt>
368         <dd>Enable support for DBM-based access databases provided by
369           <module>mod_auth_dbm</module>.</dd>
370
371         <dt><code>--enable-auth-digest</code></dt>
372         <dd>Enable RFC2617 Digest authentication provided by
373           <module>mod_auth_digest</module>.</dd>
374
375         <dt><code>--enable-auth-ldap</code></dt>
376         <dd>Enable LDAP based authentication provided by
377           <module>mod_auth_ldap</module>.</dd>
378
379         <!-- module doc needed -->
380         <dt><code>--enable-bucketeer</code></dt>
381         <dd>Enable manipulation filter the manipulation filter for buckets,
382           which is provided by <code>mod_bucketeer</code>.</dd>
383           
384         <dt><code>--enable-cache</code></dt>
385         <dd>Enable dynamic file caching provided by
386           <module>mod_cache</module>.</dd>
387
388         <!-- module doc needed -->
389         <dt><code>--enable-case-filter</code></dt>
390         <dd>Enable the example uppercase conversion output filter support of
391           <code>mod_case_filter</code>.</dd>
392
393         <!-- module doc needed -->
394         <dt><code>--enable-case-filter-in</code></dt>
395         <dd>Enable the example uppercase conversion input filter support of
396           <code>mod_case_filter_in</code>.</dd>
397
398         <dt><code>--enable-cern-meta</code></dt>
399         <dd>Enable the CERN-type meta files support provided by
400           <module>mod_cern_meta</module>.</dd>
401
402         <dt><code>--enable-charset-lite</code></dt>
403         <dd>Enable character set translation provided by
404           <module>mod_charset_lite</module>. This module will be installed by
405           default only on EBCDIC systems. On other systems, you have to enable
406           it.</dd>
407
408         <dt><code>--enable-dav</code></dt>
409         <dd>Enable the WebDAV protocol handling provided by
410           <module>mod_dav</module>. Support for filesystem resources is
411           provided by the seperate module <module>mod_dav_fs</module>. This
412           module is also automatically enabled with
413           <code>--enable-dav</code>.<br/>
414           Note: <module>mod_dav</module> can only be used together with the
415           <code>http</code> protocol module.</dd>
416
417         <dt><code>--enable-dav-fs</code></dt>
418         <dd>Enable DAV support for filesystem resources, which is provides by
419           <module>mod_dav_fs</module>. This module is a provider for the
420           <module>mod_dav</module> module, so you should also use
421           <code>--enable-dav</code>.</dd> 
422
423         <dt><code>--enable-deflate</code></dt>
424         <dd>Enable deflate transfer encoding provided by
425           <module>mod_deflate</module>.</dd>
426
427         <dt><code>--enable-disk-cache</code></dt>
428         <dd>Enable disk caching provided by
429           <module>mod_disk_cache</module>.</dd>
430
431         <dt><code>--enable-echo</code></dt>
432         <dd>Enable the ECHO server provided by
433           <module>mod_echo</module>.</dd>
434
435         <dt><code>--enable-example</code></dt>
436         <dd>Enable the example and demo module
437           <module>mod_example</module>.</dd>
438
439         <dt><code>--enable-expires</code></dt>
440         <dd>Enable Expires header control provided by
441           <module>mod_expires</module>.</dd>
442
443         <dt><code>--enable-ext-filter</code></dt>
444         <dd>Enable the external filter support provided by
445           <module>mod_ext_filter</module>.</dd>
446
447         <dt><code>--enable-file-cache</code></dt>
448         <dd>Enable the file cache provided by
449           <module>mod_file_cache</module>.</dd>
450
451         <dt><code>--enable-headers</code></dt>
452         <dd>Enable control of HTTP headers provided by
453           <module>mod_headers</module>.</dd>
454
455         <dt><code>--enable-info</code></dt>
456         <dd>Enable the server information provided by
457           <module>mod_info</module>.</dd>
458
459         <dt><code>--enable-ldap</code></dt>
460         <dd>Enable LDAP caching and connection pooling services provided by
461           <module>mod_ldap</module>.</dd>
462
463         <dt><code>--enable-logio</code></dt>
464         <dd>Enable logging of input and output bytes including headers provided
465           by <module>mod_logio</module>.</dd>
466
467         <dt><code>--enable-mem-cache</code></dt>
468         <dd>Enable memory caching provided by
469           <module>mod_mem_cache</module>.</dd>
470
471         <dt><code>--enable-mime-magic</code></dt>
472         <dd>Enable automatical determining of MIME types, which is provided by
473           <module>mod_mime_magic</module>.</dd>
474
475         <dt><code>--enable-isapi</code></dt>
476         <dd>Enable the isapi extension support provided by
477           <module>mod_isapi</module>.</dd>
478
479         <!-- module doc needed -->
480         <dt><code>--enable-optional-fn-export</code></dt>
481         <dd>Enable the example for an optional function exporter, which is
482           provided by <code>mod_optional_fn_export</code>.</dd> 
483
484         <!-- module doc needed -->
485         <dt><code>--enable-optional-fn-import</code></dt>
486         <dd>Enable the example for an optional function importer, which is
487           provided by <code>mod_optional_fn_import</code>.</dd>
488
489         <!-- module doc needed -->
490         <dt><code>--enable-optional-hook-export</code></dt>
491         <dd>Enable the example for an optional hook exporter, which is provided
492           by <code>mod_optional_hook_export</code>.</dd>
493
494         <!-- module doc needed -->
495         <dt><code>--enable-optional-hook-import</code></dt>
496         <dd>Enable the example optional hook importer, which is provided by
497           <code>mod_optional_hook_import</code>.</dd>
498
499         <dt><code>--enable-proxy</code></dt>
500         <dd>Enable the proxy/gateway functionality provided by
501           <module>mod_proxy</module>. The proxying capabilities for
502           <code>CONNECT</code>, <code>FTP</code> and <code>HTTP</code> are
503           provided by the seperate modules <module>mod_proxy_connect</module>,
504           <module>mod_proxy_ftp</module> and <module>mod_proxy_http</module>.
505           These three modules are also automatically enabled with
506           <code>--enable-proxy</code>.</dd>
507
508         <dt><code>--enable-proxy-connect</code></dt>
509         <dd>Enable proxy support for <code>CONNECT</code> request handling,
510           which is provided by <module>mod_proxy_connect</module>. This module
511           is an extension for the <module>mod_proxy</module> module, so you
512           should also use <code>--enable-proxy</code>.</dd>
513
514         <dt><code>--enable-proxy-ftp</code></dt>
515         <dd>Enable proxy support for <code>FTP</code> requests, which is
516           provided by <module>mod_proxy_ftp</module>.. This module
517           is an extension for the <module>mod_proxy</module> module, so you
518           should also use <code>--enable-proxy</code>.</dd>
519
520         <dt><code>--enable-proxy-http</code></dt>
521         <dd>Enable proxy support for <code>HTTP</code> requests, which is
522           provided by <module>mod_proxy_http</module>. This module
523           is an extension for the <module>mod_proxy</module> module, so you
524           should also use <code>--enable-proxy</code>.</dd>
525
526         <dt><code>--enable-rewrite</code></dt>
527         <dd>Enable rule based URL manipulation provided by
528           <module>mod_rewrite</module>.</dd>
529
530         <dt><code>--enable-so</code></dt>
531         <dd>Enable DSO capability provided by <module>mod_so</module>. This
532           module will be automatically enabled if you use the
533           <code>--enable-mods-shared</code> option.</dd>
534
535         <dt><code>--enable-speling</code></dt>
536         <dd>Enable the functionality to correct common URL misspellings, which
537           is provided by <module>mod_spelling</module>.</dd>
538
539         <dt><code>--enable-ssl</code></dt>
540         <dd>Enable support for SSL/TLS provided by
541           <module>mod_ssl</module>.</dd>
542
543         <dt><code>--enable-unique-id</code></dt>
544         <dd>Enable the generation of per-request unique ids, which is provided
545           by <module>mod_unique_id</module>.</dd>
546
547         <dt><code>--enable-usertrack</code></dt>
548         <dd>Enable user-session tracking provided by
549           <module>mod_usertrack</module>.</dd>
550
551         <dt><code>--with-module=<var>module-type</var>:<var>module-file</var>
552           </code></dt>
553         <dd><p>Add a third-party module to the list of statically linked
554             modules. The module source file <code><var>module-file</var></code>
555             will be searched in the <code>modules/<var>module-type</var></code>
556             subdirectory of your Apache HTTP server source tree so it has to be
557             placed there before. If it is not found here 
558             <code>configure</code> is considering <var>module-file</var> to be a
559             an absolute file path and tries to copy the source file into the
560             <var>module-type</var> subdirectory.</p>
561           <p>This option is useful to add small external modules consisting of
562             one source file. For bigger modules you should read the vendor's
563             documentation.</p>
564           <note><title>Note</title>
565             If you want to build a DSO module instead of a statically linked use
566             <a href="apxs.html">apxs</a>.</note>
567         </dd>
568
569         <dt><code>--with-mpm=MPM</code></dt>
570         <dd>Choose the process model for your server. You have to select
571           exactly one <a href="mpm.html">Multi-Processing Module</a>. Otherwise
572           the <a href="mpm.html#defaults">default MPM</a> for your operating
573           system will be taken. Possible MPMs are <module>beos</module>,
574           <module>leader</module>, <module>mpmt_os2</module>,
575           <module>perchild</module>, <module>prefork</module>,
576           <module>threadpool</module> and <module>worker</module>.</dd>
577       </dl>
578     </section>
579
580     <section id="otheroptfeat"><title>Cumulative and other options</title>
581       <dl>
582         <dt><code>--enable-maintainer-mode</code></dt>
583         <dd>Turn on debugging and compile time warnings.</dd>
584
585         <dt><code>--enable-mods-shared=<var>MODULE-LIST</var></code></dt>
586         <dd>
587           <p>Defines a list of modules to be enabled and build as dynamic
588             shared modules. This mean, these module have to be loaded
589             dynamically by using the  <directive
590             module="mod_so">LoadModule</directive> directive.</p>
591           <p><var>MODULE-LIST</var> is a space separated list of modulenames
592             enclosed by quotation marks. The module names are given without the
593             preceding <code>mod_</code>. For example:</p>
594           <example>
595             --enable-mods-shared='headers rewrite dav'
596           </example>
597           <p>Additionally you can use the special keywords <code>all</code> and
598             <code>most</code>. For example,</p>
599           <example>
600             --enable-mods-shared=most
601           </example>
602           <p>will compile most modules and build them as DSO modules.
603             <!-- See <a href="../install/enabledmodules.html">Overview of
604               enabled modules</a> for further information. --></p>
605         </dd>
606                     
607         <dt><code>--enable-modules=<var>MODULE-LIST</var></code></dt>
608         <dd>This option behaves similar to <code>--enable-mods-shared</code>, 
609           but will link the given modules statically. This mean, these modules
610           will always be present while running <code>httpd</code>. They need
611           not be loaded with <directive
612           module="mod_so">LoadModule</directive>.</dd>
613
614         <dt><code>--enable-v4-mapped</code></dt>
615         <dd>Allow IPv6 sockets to handle IPv4 connections.</dd>
616
617         <dt><code>--enable-vhost-alias</code></dt>
618         <dd>Enable mass virtual hosting provided by
619           <module>mod_vhost_alias</module>.</dd>
620
621         <dt><code>--with-port=<var>PORT</var></code></dt>
622         <dd>This defines the port on which <code>httpd</code> will listen. This
623           port number is used when generating the configuration file
624           <code>httpd.conf</code>. The default is 80.</dd>
625
626         <dt><code>--with-program-name</code></dt>
627         <dd>Define an alternative executable name.</dd>
628       </dl>
629     </section>
630   </section>
631
632   <section id="packages"><title>Optional packages</title>
633     <p>These options are used to define optional packages.</p>
634
635     <section id="generalpackages"><title>General syntax</title>
636       <p>Generally you can use the following syntax to define an optional
637         package:</p>
638
639       <dl>
640         <dt><code>--with-<var>PACKAGE</var>[=<var>ARG</var>]</code></dt>
641         <dd>Use the package <var>PACKAGE</var>. The default value for
642           <var>ARG</var> is<code>yes</code>.</dd>
643
644         <dt><code>--without-<var>PACKAGE</var></code></dt>
645         <dd>Do not use the package <var>PACKAGE</var>. This is the same as
646           <code>--with-<var>PACKAGE</var>=no</code>. This option is provided by
647           <code>autoconf</code> but not very useful for the Apache HTTP
648           Server.</dd>
649       </dl>
650     </section>
651
652     <!-- options not known are passed to packasges?
653     are there other important options for packages? -->
654
655     <section id="packageopt"><title>Specific packages</title>
656       <dl>
657         <dt><code>--with-apr=<var>DIR</var>|<var>FILE</var></code></dt>
658         <dd>The Apache Portable Runtime (APR) is part of the <code>httpd</code>
659           source distribution and will automatically be build together with the
660           HTTP server. If you want to use an already installed APR instead you
661           have to tell <code>configure</code> the path to the
662           <code>apr-config</code> script. You may set the absolute path and name
663           or the directory to the installed APR. <code>apr-config</code> must
664           exists within this directory or the subdirectory
665           <code>bin</code>.</dd>
666         
667         <dt><code>--with-apr-util=<var>DIR</var>|<var>FILE</var></code></dt>
668         <dd>The Apache Portable Runtime Utilities (APU) are part of the
669           <code>httpd</code> source distribution and will automatically be build
670           together with the HTTP server. If you want to use an already installed
671           APU instead you have to tell <code>configure</code> the path to the
672           <code>apu-config</code> script. You may set the absolute path and name
673           or the directory to the installed APU. <code>apu-config</code> must
674           exists within this directory or the subdirectory
675           <code>bin</code>.</dd>
676
677         <dt><code>--with-ssl=<var>DIR</var></code></dt>
678         <dd>If <module>mod_ssl</module> has been enabled <code>configure</code>
679           searches for an installed OpenSSL. You can set the directory path
680           to the SSL/TLS toolkit instead.</dd>
681
682         <dt><code>--with-z=<var>DIR</var></code></dt>
683         <dd><code>configure</code> searches automatically for an installed
684           <code>zlib</code> library if your source configuration requires one
685           (e.g., when <module>mod_deflate</module> is enabled). You can set the
686           directory path to the compression library instead.</dd>
687       </dl>
688     </section>
689   </section>
690   
691   <section id="supportopt"><title>Options for support programs</title>
692     <dl>
693       <dt><code>--enable-static-support</code></dt>
694       <dd>Build a statically linked version of the support binaries. This
695         means, a stand-alone executable will be built with all the necessary
696         libraries integrated. Otherwise the support binaries are linked
697         dynamically by default.</dd>
698
699       <dt><code>--enable-suexec</code></dt>
700       <dd>Use this option to enable <code><a
701             href="suexec.html">suexec</a></code>, which allows you to set uid
702         and gid for spawned processes. Further options to configure
703         <code>suexec</code> are described <a href="#suexec">below</a>.</dd>
704     </dl>
705
706     <p>It is possible to create a statically linked binary of a single
707       support program by using the following options:</p>
708
709     <dl>
710       <dt><code>--enable-static-ab</code></dt>
711       <dd>Build a statically linked version of <code><a
712             href="ab.html">ab</a></code>.</dd>
713
714       <!-- missing documentation for chechgid -->
715       <dt><code>--enable-static-checkgid</code></dt>
716       <dd>Build a statically linked version of <code>checkgid</code>.</dd>
717
718       <!-- missing documentation for htdbm -->
719       <dt><code>--enable-static-htdbm</code></dt>
720       <dd>Build a statically linked version of <code>htdbm</code>.</dd>
721
722       <dt><code>--enable-static-htdigest</code></dt>
723       <dd>Build a statically linked version of <code><a
724             href="htdigest.html">htdigest</a></code>.</dd>
725         
726       <dt><code>--enable-static-htpasswd</code></dt>
727       <dd>Build a statically linked version of <code><a
728             href="htpasswd.html">htpasswd</a></code>.</dd>
729
730       <dt><code>--enable-static-logresolve</code></dt>
731       <dd>Build a statically linked version of <code><a
732             href="logresolve.html">logresolve</a></code>.</dd>
733
734       <dt><code>--enable-static-rotatelogs</code></dt>
735       <dd>Build a statically linked version of <code><a
736             href="rotatelogs.html">rotatelogs</a></code>.</dd>
737     </dl>
738
739     <section id="suexec"><title>suexec configuration options</title>
740       <p>The following options are used to fine tune the behavior of <code><a
741         href="suexec.html">suexec</a></code>. See <a
742         href="suexec.html#install">Configuring and installing suEXEC</a>
743         for further information.</p>
744
745       <dl>
746         <dt><code>--with-suexec-bin</code></dt>
747         <dd>This defines the path to suexec binary. Default is
748           <code>--sbindir</code> (see <a href="directoryfinetuning">Fine
749             tuning of installation directories</a>).</dd>
750
751         <dt><code>--with-suexec-caller</code></dt>
752         <dd>This defines the user allowed to call <code>suexec</code>. It should
753           be the same as the user under which <code>httpd</code> normally
754           runs.</dd>
755
756         <dt><code>--with-suexec-docroot</code></dt>
757         <dd>This defines the directory tree under which <code>suexec</code>
758           access is allowed for executables. Default value is
759           <code>--datadir/htdocs</code>.</dd>
760
761         <dt><code>--with-suexec-gidmin</code></dt>
762         <dd>Define this as the lowest GID allowed to be a target user for
763           <code>suexec</code>. The default value is 100.</dd>
764
765         <dt><code>--with-suexec-logfile</code></dt>
766         <dd>This defines the filename of the <code>suexec</code> logfile. By
767           default the logfile is named <code>suexec_log</code> and located in
768           <code>--logfiledir</code>.</dd>
769
770         <dt><code>--with-suexec-safepath</code></dt>
771         <dd>Define the value of the environment variable <code>PATH</code> to
772           be set for processes started by <code>suexec</code>. Default value is
773           <code>/usr/local/bin:/usr/bin:/bin</code>.</dd>
774
775         <dt><code>--with-suexec-userdir</code></dt>
776         <dd>This defines the subdirectory under the user's directory that
777           contains all executables for which <code>suexec</code> access is
778           allowed. This setting is necessary when you want to use
779           <code>suexec</code> together with user-specific directories (as
780           provided by <module>mod_userdir</module>). The default is
781           <code>public_html</code>.</dd>
782
783         <dt><code>--with-suexec-uidmin</code></dt>
784         <dd>Define this as the lowest UID allowed to be a target user for
785           <code>suexec</code>. The default value is 100.</dd>
786
787         <dt><code>--with-suexec-umask</code></dt>
788         <dd>Set <code>umask</code> for processes started by <code>suexec</code>.
789           It defaults to your system settings.</dd>
790       </dl>
791     </section>
792   </section>
793 </section>
794
795 <section id="env"><title>Environment variables</title>
796   <p>There are some useful environment variables to override the choices made by
797     <code>configure</code> or to help it to find libraries and programs with
798     nonstandard names or locations.</p>
799
800   <!-- are these all useful variables? -->
801   <dl>
802     <dt><code>CC</code></dt>
803     <dd>Define the C compiler command to be used for compilation.</dd>
804
805     <dt><code>CFLAGS</code></dt>
806     <dd>Set C compiler flags you want to use for compilation.</dd>
807
808     <dt><code>CPP</code></dt>
809     <dd>Define the C preprocessor command to be used.</dd>
810
811     <dt><code>CPPFLAGS</code></dt>
812     <dd>Set C/C++ preprocessor flags, e.g. <code>-I<var>includedir</var></code>
813       if you have headers in a nonstandard directory <var>includedir</var>.</dd>
814
815     <dt><code>LDFLAGS</code></dt>
816     <dd>Set linker flags, e.g. <code>-L<var>libdir</var></code> if you have
817       libraries in a nonstandard directory <var>libdir</var>.</dd> 
818   </dl>
819 </section>
820 </manualpage>