summaryrefslogtreecommitdiffstats
path: root/docs/manual/install.html.en
blob: 4301558df6d7d4c9cb00c809934ebb34fee95f62 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"><head><!--
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
              This file is generated from xml source: DO NOT EDIT
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      -->
<title>Compiling and Installing - Apache HTTP Server</title>
<link href="./style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
<link href="./style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
<link href="./style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" />
<link href="./images/favicon.ico" rel="shortcut icon" /></head>
<body id="manual-page"><div id="page-header">
<p class="menu"><a href="./mod/">Modules</a> | <a href="./mod/directives.html">Directives</a> | <a href="./faq/">FAQ</a> | <a href="./glossary.html">Glossary</a> | <a href="./sitemap.html">Sitemap</a></p>
<p class="apache">Apache HTTP Server Version 2.1</p>
<img alt="" src="./images/feather.gif" /></div>
<div class="up"><a href="./"><img title="&lt;-" alt="&lt;-" src="./images/left.gif" /></a></div>
<div id="path">
<a href="http://www.apache.org/">Apache</a> &gt; <a href="http://httpd.apache.org/">HTTP Server</a> &gt; <a href="http://httpd.apache.org/docs-project/">Documentation</a> &gt; <a href="./">Version 2.1</a></div><div id="page-content"><div id="preamble"><h1>Compiling and Installing</h1>
<div class="toplang">
<p><span>Available Languages: </span><a href="./de/install.html" hreflang="de" rel="alternate" title="Deutsch">&nbsp;de&nbsp;</a> |
<a href="./en/install.html" title="English">&nbsp;en&nbsp;</a> |
<a href="./ja/install.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
<a href="./ko/install.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a></p>
</div>


    <p>This document covers compilation and installation of Apache
    on Unix and Unix-like systems only. For compiling and
    installation on Windows, see <a href="platform/windows.html">Using Apache with Microsoft
    Windows</a>. For other platforms, see the <a href="platform/">platform</a> documentation.</p>

    <p>Apache 2.0's configuration and installation environment has
    changed completely from Apache 1.3. Apache 1.3 used a custom
    set of scripts to achieve easy installation. Apache 2.0 now
    uses <code>libtool</code> and <code>autoconf</code>
    to create an environment that looks like many other Open Source
    projects.</p>

    <p>If you are upgrading from one minor version to the next (for
    example, 2.0.50 to 2.0.51), please skip down to the <a href="#upgrading">upgrading</a> section.</p>

</div>
<div id="quickview"><ul id="toc"><li><img alt="" src="./images/down.gif" /> <a href="#overview">Overview for the
    impatient</a></li>
<li><img alt="" src="./images/down.gif" /> <a href="#requirements">Requirements</a></li>
<li><img alt="" src="./images/down.gif" /> <a href="#download">Download</a></li>
<li><img alt="" src="./images/down.gif" /> <a href="#extract">Extract</a></li>
<li><img alt="" src="./images/down.gif" /> <a href="#configure">Configuring the source tree</a></li>
<li><img alt="" src="./images/down.gif" /> <a href="#compile">Build</a></li>
<li><img alt="" src="./images/down.gif" /> <a href="#install">Install</a></li>
<li><img alt="" src="./images/down.gif" /> <a href="#customize">Customize</a></li>
<li><img alt="" src="./images/down.gif" /> <a href="#test">Test</a></li>
<li><img alt="" src="./images/down.gif" /> <a href="#upgrading">Upgrading</a></li>
</ul><h3>See also</h3><ul class="seealso"><li><a href="invoking.html">Starting Apache</a></li><li><a href="stopping.html">Stopping and Restarting</a></li></ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
<div class="section">
<h2><a name="overview" id="overview">Overview for the
    impatient</a></h2>

    <table>
      
      <tr>
        <td><a href="#download">Download</a></td>

        <td><code>$ lynx http://httpd.apache.org/download.cgi</code>
        </td>
      </tr>

      <tr>
        <td><a href="#extract">Extract</a></td>

        <td><code>$ gzip -d httpd-2_1_<em>NN</em>.tar.gz<br />
         $ tar xvf httpd-2_1_<em>NN</em>.tar</code> </td>
      </tr>

      <tr>
        <td><a href="#configure">Configure</a></td>

        <td><code>$ ./configure --prefix=<em>PREFIX</em></code>
        </td>
      </tr>

      <tr>
        <td><a href="#compile">Compile</a></td>

        <td><code>$ make</code> </td>
      </tr>

      <tr>
        <td><a href="#install">Install</a></td>

        <td><code>$ make install</code> </td>
      </tr>

      <tr>
        <td><a href="#customize">Customize</a></td>

        <td><code>$ vi <em>PREFIX</em>/conf/httpd.conf</code> </td>
      </tr>

      <tr>
        <td><a href="#test">Test</a></td>

        <td><code>$ <em>PREFIX</em>/bin/apachectl start</code>
        </td>
      </tr>
    </table>

    <p><em>NN</em> must be replaced with the current minor version
    number, and <em>PREFIX</em> must be replaced with the
    filesystem path under which the server should be installed. If
    <em>PREFIX</em> is not specified, it defaults to
    <code>/usr/local/apache2</code>.</p>

    <p>Each section of the compilation and installation process is
    described in more detail below, beginning with the requirements
    for compiling and installing Apache HTTPD.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
<div class="section">
<h2><a name="requirements" id="requirements">Requirements</a></h2>

    <p>The following requirements exist for building Apache:</p>

    <dl>
      <dt>Disk Space</dt>
      <dd>Make sure you have at least 50 MB of temporary free disk
      space available. After installation Apache occupies
      approximately 10 MB of disk space. The actual disk space
      requirements will vary considerably based on your chosen
      configuration options and any third-party modules.</dd>

      <dt>ANSI-C Compiler and Build System</dt>
      <dd>Make sure you have an ANSI-C compiler installed. The <a href="http://www.gnu.org/software/gcc/gcc.html">GNU C
      compiler (GCC)</a> from the <a href="http://www.gnu.org/">Free Software Foundation (FSF)</a>
      is recommended (version 2.7.2 is fine). If you don't have GCC
      then at least make sure your vendor's compiler is ANSI
      compliant. In addition, your <code>PATH</code> must contain
      basic build tools such as <code>make</code>.</dd>

      <dt>Accurate time keeping</dt>
      <dd>Elements of the HTTP protocol are expressed as the time of
      day. So, it's time to investigate setting some time
      synchronization facility on your system. Usually the
      <code>ntpdate</code> or <code>xntpd</code> programs are used for
      this purpose which are based on the Network Time Protocol (NTP).
      See the Usenet newsgroup <a href="news:comp.protocols.time.ntp">comp.protocols.time.ntp</a>
      and the <a href="http://www.ntp.org">NTP
      homepage</a> for more details about NTP software and public
      time servers.</dd>

      <dt><a href="http://www.perl.org/">Perl 5</a>
      [OPTIONAL]</dt>
      <dd>For some of the support scripts like <a href="programs/apxs.html">apxs</a> or <a href="programs/dbmmanage.html">dbmmanage</a> (which are
      written in Perl) the Perl 5 interpreter is required (versions
      5.003 or newer are sufficient). If no such interpreter is found by
      the `<code>configure</code>' script there is no harm. Of course, you
      still can build and install Apache 2.0. Only those support scripts
      cannot be used. If you have multiple Perl interpreters
      installed (perhaps a Perl 4 from the vendor and a Perl 5 from
      your own), then it is recommended to use the <code>--with-perl</code>
      option (see below) to make sure the correct one is selected
      by <code>./configure</code>.</dd>
    </dl>
</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
<div class="section">
<h2><a name="download" id="download">Download</a></h2>

    <p>Apache can be downloaded from the <a href="http://httpd.apache.org/download.cgi">Apache HTTP Server
    download site</a> which lists several mirrors. You'll find here
    the latest stable release.</p>

    <p>After downloading, especially if a mirror site is used, it
    is important to verify that you have a complete and unmodified
    version of the Apache HTTP Server. This can be accomplished by
    testing the downloaded tarball against the PGP signature. This,
    in turn, is a two step procedure. First, you must obtain the
    <a href="http://www.apache.org/dist/httpd/KEYS"><code>KEYS</code></a>
    file from the Apache distribution site, too. (To assure that the
    <code>KEYS</code> file itself has not been modified, it may be a good
    idea to use a file from a previous distribution of Apache or import
    the keys from a public key server.) The keys are imported into
    your personal key ring using one of the following commands (depending
    on your pgp version):</p>

<div class="example"><p><code>$ pgp &lt; KEYS</code></p></div>

    <p>or </p>

<div class="example"><p><code>$ gpg --import KEYS</code></p></div>

    <p>The next step is to test the tarball against the PGP
    signature, which should always be obtained from the <a href="http://httpd.apache.org/download.cgi">main Apache
    website</a>. A link to the signature file is placed behind the
    corresponding download link or may be found in the particular
    directory at the <a href="http://www.apache.org/dist/httpd/">Apache
    distribution site</a>. Its filename is identical to the source
    tarball with the addition of <code>.asc</code>. Then you can check
    the distribution with one of the following commands (again,
    depending on your pgp version):</p>

<div class="example"><p><code>$ pgp httpd-2_1_<em>NN</em>.tar.gz.asc</code></p></div>

    <p>or</p>

<div class="example"><p><code>$ gpg --verify httpd-2_1_<em>NN</em>.tar.gz.asc</code></p></div>

    <p>You should receive a message like</p>

<div class="example"><p><code>Good signature from user "Martin Kraemer
      &lt;martin@apache.org&gt;".</code></p></div>

    <p>Depending on the trust relationships contained in your key
    ring, you may also receive a message saying that the
    relationship between the key and the signer of the key cannot
    be verified. This is not a problem if you trust the
    authenticity of the <code>KEYS</code> file.</p>

</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
<div class="section">
<h2><a name="extract" id="extract">Extract</a></h2>

    <p>Extracting the source from the Apache HTTPD tarball is a
    simple matter of uncompressing, and then untarring:</p>

<div class="example"><p><code>
      $ gzip -d httpd-2_1_<em>NN</em>.tar.gz<br />
       $ tar xvf httpd-2_1_<em>NN</em>.tar
</code></p></div>

    <p>This will create a new directory under the current directory
    containing the source code for the distribution. You should
    <code>cd</code> into that directory before proceeding with
    compiling the server.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
<div class="section">
<h2><a name="configure" id="configure">Configuring the source tree</a></h2>

    <p>The next step is to configure the Apache source tree for
    your particular platform and personal requirements. This is
    done using the script <code>configure</code> included in the
    root directory of the distribution. (Developers downloading the
    CVS version of the Apache source tree will need to have
    <code>autoconf</code> and <code>libtool</code> installed and
    will need to run <code>buildconf</code> before proceeding with
    the next steps. This is not necessary for official
    releases.)</p>

    <p>To configure the source tree using all the default options,
    simply type <code>./configure</code>. To change the default
    options, <code>configure</code> accepts a variety of variables
    and command line options. Environment variables are generally
    placed before the <code>./configure</code> command, while other
    options are placed after. The most important option here is the
    location prefix where Apache is to be installed later, because
    Apache has to be configured for this location to work
    correctly. But there are a lot of other options available for
    your pleasure.</p>

    <p>For a short impression of what possibilities you have, here
    is a typical example which compiles Apache for the installation
    tree <code>/sw/pkg/apache</code> with a particular compiler and flags
    plus the two additional modules <code class="module"><a href="./mod/mod_rewrite.html">mod_rewrite</a></code> and
    <code class="module"><a href="./mod/mod_speling.html">mod_speling</a></code> for
    later loading through the DSO mechanism:</p>

<div class="example"><p><code>
      $ CC="pgcc" CFLAGS="-O2" \<br />
       ./configure --prefix=/sw/pkg/apache \<br />
       --enable-rewrite=shared \<br />
       --enable-speling=shared
</code></p></div>

    <p>When <code>configure</code> is run it will take several minutes to
    test for the availability of features on your system and build
    Makefiles which will later be used to compile the server.</p>

    <p>The easiest way to find all of the configuration flags for
    Apache is to run <code>./configure --help</code>. What follows is a
    brief description of most of the arguments and environment
    variables.</p>

<h3><a name="environment" id="environment">Environment Variables</a></h3>

    <p>The <code>autoconf</code> build process uses several environment
    variables to configure the build environment. In general, these
    variables change the method used to build Apache, but not the
    eventual features of the server. These variables can be placed
    in the environment before invoking <code>configure</code>, but
    it is usually easier to specify them on the
    <code>configure</code> command line as demonstrated in the
    example above.</p>

    <dl>
      <dt><code>CC=...</code></dt>

      <dd>The name of the C compiler command.</dd>

      <dt><code>CPPFLAGS=...</code></dt>

      <dd>Miscellaneous C preprocessor and compiler options.</dd>

      <dt><code>CFLAGS=...</code></dt>

      <dd>Debugging and optimization options for the C
      compiler.</dd>

      <dt><code>LDFLAGS=...</code></dt>

      <dd>Miscellaneous options to be passed to the linker.</dd>

      <dt><code>LIBS=...</code></dt>

      <dd>Library location information ("<code>-L</code>" and
      "<code>-l</code>" options) to pass to the linker.</dd>

      <dt><code>INCLUDES=...</code></dt>

      <dd>Header file search directories ("<code>-I<em>dir</em></code>").</dd>

      <dt><code>TARGET=...</code> [Default: <code>httpd</code>]</dt>

      <dd>Name of the executable which will be built.</dd>

      <dt><code>NOTEST_CPPFLAGS=...</code></dt>

      <dt><code>NOTEST_CFLAGS=...</code></dt>

      <dt><code>NOTEST_LDFLAGS=...</code></dt>

      <dt><code>NOTEST_LIBS=...</code></dt>

      <dd>These variables share the same function as their
      non-<code>NOTEST</code> namesakes. However, the variables are
      applied to the build process only after autoconf has performed its
      feature testing. This allows the inclusion of flags which
      will cause problems during feature testing, but must be used
      for the final compilation.</dd>

      <dt><code>SHLIB_PATH=...</code></dt>

      <dd>Options which specify shared library paths for the
      compiler and linker.</dd>
    </dl>


<h3><a name="output" id="output">autoconf Output Options</a></h3>

    <dl>
      <dt><code>--help</code></dt>

      <dd>Prints the usage message including all available options,
      but does not actually configure anything.</dd>

      <dt><code>--quiet</code></dt>

      <dd>Prevents the printing of the usual "<code>checking...</code>"
      messages.</dd>

      <dt><code>--verbose</code></dt>

      <dd>Prints much more information during the configuration
      process, including the names of all the files examined.</dd>
    </dl>


<h3><a name="pathnames" id="pathnames">Pathnames</a></h3>

    <p>There are currently two ways to configure the pathnames
    under which Apache will install its files. First, you can
    specify a directory and have Apache install itself under that
    directory in its default locations.</p>

    <dl>
      <dt><code>--prefix=<em>PREFIX</em></code> [Default:
      <code>/usr/local/apache2</code>]</dt>

      <dd>Specifies the directory under which the Apache files will
      be installed.</dd>
    </dl>

    <p>It is possible to specify that architecture-dependent files
    should be placed under a different directory.</p>

    <dl>
      <dt><code>--exec-prefix=<em>EPREFIX</em></code> [Default:
      <code><em>PREFIX</em></code>]</dt>

      <dd>Specifies the directory under which
      architecture-dependent files will be placed.</dd>
    </dl>

    <p>The second, and more flexible way to configure the install
    path locations for Apache is using the
    <code>config.layout</code> file. Using this method, it is
    possible to separately specify the location for each type of
    file within the Apache installation. The
    <code>config.layout</code> file contains several example
    configurations, and you can also create your own custom
    configuration following the examples. The different layouts in
    this file are grouped into <code>&lt;Layout
    FOO&gt;...&lt;/Layout&gt;</code> sections and referred to by
    name as in <code>FOO</code>.</p>

    <dl>
      <dt><code>--enable-layout=<em>LAYOUT</em></code></dt>

      <dd>Use the named layout in the <code>config.layout</code>
      file to specify the installation paths.</dd>
    </dl>



<h3><a name="modules" id="modules">Modules</a></h3>

    <p>Apache is a modular server. Only the most basic
    functionality is included in the core server. Extended features
    are available in various modules. During the configuration
    process, you must select which modules to compile for use with
    your server. You can view a <a href="mod/">list of modules</a> included in
    the documentation. Those modules with a <a href="mod/module-dict.html#Status">status</a> of "Base" are
    included by default and must be specifically disabled if you do
    not want them (e.g. <code class="module"><a href="./mod/mod_userdir.html">mod_userdir</a></code>). Modules with any
    other status must be specifically enabled if you wish to use them
    (e.g. <code class="module"><a href="./mod/mod_expires.html">mod_expires</a></code>).</p>

    <p>There are two ways for a module to be compiled and used with
    Apache. Modules may be <em>statically compiled</em>, which
    means that they are permanently included in the Apache binary.
    Alternatively, if your operating system supports Dynamic Shared
    Objects (DSOs) and <code>autoconf</code> can detect that support, then
    modules may be <em>dynamically compiled</em>. DSO modules are
    stored separately from the Apache binary, and may be included
    or excluded from the server using the run-time configuration
    directives provided by <code class="module"><a href="./mod/mod_so.html">mod_so</a></code>.
    The mod_so is automatically included in the server if any
    dynamic modules are included in the compilation. If you would
    like to make your server capable of loading DSOs without
    actually compiling any dynamic modules, you can explicitly
    <code>--enable-so</code>.</p>

    <dl>
      <dt><code>--enable-<em>MODULE</em>[=shared]</code></dt>

      <dd>Compile and include the module <em>MODULE</em>. The
      identifier <em>MODULE</em> is the <a href="mod/module-dict.html#ModuleIdentifier">Module
      Identifier</a> from the module documentation without the
      "_module" string. To compile the module as a DSO, add the
      option <code>=shared</code>.</dd>

      <dt><code>--disable-<em>MODULE</em></code></dt>

      <dd>Remove the module <em>MODULE</em> which would otherwise
      be compiled and included.</dd>

      <dt><code>--enable-modules=<em>MODULE-LIST</em></code></dt>

      <dd>Compile and include the modules listed in the
      space-separated <em>MODULE-LIST</em>.</dd>

      <dt>
      <code>--enable-mods-shared=<em>MODULE-LIST</em></code></dt>

      <dd>Compile and include the modules in the space-separated
      <em>MODULE-LIST</em> as dynamically loadable (DSO)
      modules.</dd>
    </dl>

    <p>The <em>MODULE-LIST</em> in the
    <code>--enable-modules</code> and
    <code>--enable-mods-shared</code> options is usually a
    space-separated list of module identifiers. For example, to
    enable <code class="module"><a href="./mod/mod_dav.html">mod_dav</a></code> and <code class="module"><a href="./mod/mod_info.html">mod_info</a></code>,
    you can either use</p>

<div class="example"><p><code>./configure --enable-dav --enable-info</code></p></div>

    <p>or, equivalently,</p>

<div class="example"><p><code>./configure --enable-modules="dav info"</code></p></div>

    <p>In addition, the special keywords <code>all</code> or
    <code>most</code> can be used to add all or most of the modules
    in one step. You can then remove any modules that you do not
    want with the <code>--disable-<em>MODULE</em></code> option.
    For example, to include all modules as DSOs with the exception
    of <code class="module"><a href="./mod/mod_info.html">mod_info</a></code>, you can use</p>

<div class="example"><p><code>
      ./configure --enable-mods-shared=all
      --disable-info
</code></p></div>

    <p>In addition to the standard set of modules, Apache 2.0 also
    includes a choice of <a href="mpm.html">Multi-Processing
    Modules</a> (MPMs). One, and only one MPM must be included in
    the compilation process. The default MPMs for each platform are
    listed on the <a href="mpm.html">MPM documentation page</a>,
    but can be overridden on the <code>configure</code> command
    line.</p>

    <dl>
      <dt><code>--with-mpm=<em>NAME</em></code></dt>

      <dd>Choose the mpm <em>NAME</em>.</dd>
    </dl>

    <p>To activate an MPM called <var>mpm_name</var>, you can use</p>

<div class="example"><p><code>
     ./configure --with-mpm=<var>mpm_name</var>
</code></p></div>



<h3><a name="dbm" id="dbm">DBM</a></h3>

    <p>Several Apache features, including
    <code class="module"><a href="./mod/mod_authn_dbm.html">mod_authn_dbm</a></code> and <code class="module"><a href="./mod/mod_rewrite.html">mod_rewrite</a></code>'s
    DBM <code class="directive"><a href="./mod/mod_rewrite.html#rewritemap">RewriteMap</a></code> use
    simple key/value databases for quick lookups of information.  Apache
    includes SDBM with its source-code, so this database is always
    available.  If you would like to use other database types, the
    following <code>configure</code> options are available:</p>

<dl>
<dt><code>--with-gdbm[=<em>path</em>]</code></dt>
<dt><code>--with-ndbm[=<em>path</em>]</code></dt>
<dt><code>--with-berkeley-db[=<em>path</em>]</code></dt>

<dd>If no <em>path</em> is specified, Apache will search for the
include files and libraries in the usual search paths.  An explicit
<em>path</em> will cause Apache to look in
<em>path</em><code>/lib</code> and
<em>path</em><code>/include</code> for the relevant files.  Finally,
the <em>path</em> may specify specific include and library paths
separated by a colon.</dd>
</dl>



<h3><a name="suexec" id="suexec">Suexec</a></h3>

    <p>Apache includes a support program called <a href="suexec.html">suexec</a> which can be used to isolate user
    CGI programs. However, if suexec is improperly configured, it
    can cause serious security problems. Therefore, you should
    carefully read and consider the <a href="suexec.html">suexec
    documentation</a> before implementing this feature.</p>

</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
<div class="section">
<h2><a name="compile" id="compile">Build</a></h2>

    <p>Now you can build the various parts which form the Apache
    package by simply running the command:</p>

<div class="example"><p><code>$ make</code></p></div>

    <p>Please be patient here, since a base configuration takes
    approximately 3 minutes to compile under a Pentium III/Linux
    2.2 system, but this will vary widely depending on your
    hardware and the number of modules which you have enabled.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
<div class="section">
<h2><a name="install" id="install">Install</a></h2>

    <p>Now it's time to install the package under the configured
    installation <em>PREFIX</em> (see <code>--prefix</code> option
    above) by running:</p>

<div class="example"><p><code>$ make install</code></p></div>

    <p>If you are upgrading, the installation will not overwrite
    your configuration files or documents.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
<div class="section">
<h2><a name="customize" id="customize">Customize</a></h2>

    <p>Next, you can customize your Apache HTTP server by editing
    the <a href="configuring.html">configuration files</a> under
    <code><em>PREFIX</em>/conf/</code>.</p>

<div class="example"><p><code>$ vi <em>PREFIX</em>/conf/httpd.conf</code></p></div>

    <p>Have a look at the Apache manual under <a href="./">docs/manual/</a> or consult <a href="http://httpd.apache.org/docs-2.1/">http://httpd.apache.org/docs-2.1/</a> for the most recent version of
    this manual and a complete reference of available <a href="mod/directives.html">configuration directives</a>.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
<div class="section">
<h2><a name="test" id="test">Test</a></h2>

    <p>Now you can <a href="invoking.html">start</a> your Apache
    HTTP server by immediately running:</p>

<div class="example"><p><code>$ <em>PREFIX</em>/bin/apachectl start</code></p></div>

    <p>and then you should be able to request your first document
    via URL <code>http://localhost/</code>. The web page you see is located
    under the <code class="directive"><a href="./mod/core.html#documentroot">DocumentRoot</a></code>
    which will usually be <code><em>PREFIX</em>/htdocs/</code>.
    Then <a href="stopping.html">stop</a> the server again by
    running:</p>

<div class="example"><p><code>$ <em>PREFIX</em>/bin/apachectl stop</code></p></div>
</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
<div class="section">
<h2><a name="upgrading" id="upgrading">Upgrading</a></h2>

    <p>The first step in upgrading is to read the release announcement
    and the file <code>CHANGES</code> in the source distribution to
    find any changes that may affect your site.  When changing between
    major releases (for example, from 1.3 to 2.0 or from 2.0 to 2.2),
    there will likely be major differences in the compile-time and
    run-time configuration that will require manual adjustments.  All
    modules will also need to be upgraded to accomodate changes in the
    module API.</p>

    <p>Upgrading from one minor version to the next (for example, from
    2.0.55 to 2.0.57) is easier.  The <code>make install</code>
    process will not overwrite any of your existing documents, log
    files, or configuration files.  In addition, the developers make
    every effort to avoid incompatible changes in the
    <code>configure</code> options, run-time configuration, or the
    module API between minor versions.  In most cases you should be able to
    use an identical <code>configure</code> command line, an identical
    configuration file, and all of your modules should continue to
    work.  (This is only valid for versions after 2.0.41; earlier
    versions have incompatible changes.)</p>

    <p>If you kept the source tree from your last installation,
    upgrading is even easier.  The file <code>config.nice</code> in
    the root of the old source tree contains the exact
    <code>configure</code> command line that you used to configure the
    source tree.  Then to upgrade from one version to the next, you
    need only copy the <code>config.nice</code> file to the source
    tree of the new version, edit it to make any desired changes, and
    then run:</p>

    <div class="example"><p><code>
    $ ./config.nice<br />
    $ make<br />
    $ make install<br />
    $ <em>PREFIX</em>/bin/apachectl stop<br />
    $ <em>PREFIX</em>/bin/apachectl start<br />
    </code></p></div>

    <div class="warning">You should always test any new version in your
    environment before putting it into production.  For example, you
    can install and run the new version along side the old one by
    using a different <code>--prefix</code> and a
    different port (by adjusting the <code class="directive"><a href="./mod/mpm_common.html#listen">Listen</a></code> directive) to test for any
    incompatibilities before doing the final upgrade.</div>
</div></div>
<div class="bottomlang">
<p><span>Available Languages: </span><a href="./de/install.html" hreflang="de" rel="alternate" title="Deutsch">&nbsp;de&nbsp;</a> |
<a href="./en/install.html" title="English">&nbsp;en&nbsp;</a> |
<a href="./ja/install.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
<a href="./ko/install.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a></p>
</div><div id="footer">
<p class="apache">Copyright 1999-2004 The Apache Software Foundation.<br />Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
<p class="menu"><a href="./mod/">Modules</a> | <a href="./mod/directives.html">Directives</a> | <a href="./faq/">FAQ</a> | <a href="./glossary.html">Glossary</a> | <a href="./sitemap.html">Sitemap</a></p></div>
</body></html>