home *** CD-ROM | disk | FTP | other *** search
/ PC World 2004 May / PCWorld_2004-05_cd.bin / komunikace / apache / apache_2.0.48-win32-x86-no_ssl.msi / Data.Cab / F252227_install.xml < prev    next >
Extensible Markup Language  |  2003-09-01  |  26KB  |  644 lines

  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="install.xml.meta">
  5.  
  6.   <title>Compiling and Installing</title>
  7.  
  8. <summary>
  9.  
  10.     <p>This document covers compilation and installation of Apache
  11.     on Unix and Unix-like systems only. For compiling and
  12.     installation on Windows, see <a
  13.     href="platform/windows.html">Using Apache with Microsoft
  14.     Windows</a>. For other platforms, see the <a
  15.     href="platform/">platform</a> documentation.</p>
  16.  
  17.     <p>Apache 2.0's configuration and installation environment has
  18.     changed completely from Apache 1.3. Apache 1.3 used a custom
  19.     set of scripts to achieve easy installation. Apache 2.0 now
  20.     uses <code>libtool</code> and <code>autoconf</code>
  21.     to create an environment that looks like many other Open Source
  22.     projects.</p>
  23.  
  24.     <p>If you are upgrading from one minor version to the next (for
  25.     example, 2.0.50 to 2.0.51), please skip down to the <a
  26.     href="#upgrading">upgrading</a> section.</p>
  27.  
  28. </summary>
  29.  
  30. <seealso><a href="invoking.html">Starting Apache</a></seealso>
  31. <seealso><a href="stopping.html">Stopping and Restarting</a></seealso>
  32.  
  33. <section id="overview"><title>Overview for the
  34.     impatient</title>
  35.  
  36.     <table>
  37.       <columnspec><column width=".13"/><column width=".80"/></columnspec>
  38.       <tr>
  39.         <td><a href="#download">Download</a></td>
  40.  
  41.         <td><code>$ lynx http://httpd.apache.org/download.cgi</code>
  42.         </td>
  43.       </tr>
  44.  
  45.       <tr>
  46.         <td><a href="#extract">Extract</a></td>
  47.  
  48.         <td><code>$ gzip -d httpd-2_0_<em>NN</em>.tar.gz<br />
  49.          $ tar xvf httpd-2_0_<em>NN</em>.tar</code> </td>
  50.       </tr>
  51.  
  52.       <tr>
  53.         <td><a href="#configure">Configure</a></td>
  54.  
  55.         <td><code>$ ./configure --prefix=<em>PREFIX</em></code>
  56.         </td>
  57.       </tr>
  58.  
  59.       <tr>
  60.         <td><a href="#compile">Compile</a></td>
  61.  
  62.         <td><code>$ make</code> </td>
  63.       </tr>
  64.  
  65.       <tr>
  66.         <td><a href="#install">Install</a></td>
  67.  
  68.         <td><code>$ make install</code> </td>
  69.       </tr>
  70.  
  71.       <tr>
  72.         <td><a href="#customize">Customize</a></td>
  73.  
  74.         <td><code>$ vi <em>PREFIX</em>/conf/httpd.conf</code> </td>
  75.       </tr>
  76.  
  77.       <tr>
  78.         <td><a href="#test">Test</a></td>
  79.  
  80.         <td><code>$ <em>PREFIX</em>/bin/apachectl start</code>
  81.         </td>
  82.       </tr>
  83.     </table>
  84.  
  85.     <p><em>NN</em> must be replaced with the current minor version
  86.     number, and <em>PREFIX</em> must be replaced with the
  87.     filesystem path under which the server should be installed. If
  88.     <em>PREFIX</em> is not specified, it defaults to
  89.     <code>/usr/local/apache2</code>.</p>
  90.  
  91.     <p>Each section of the compilation and installation process is
  92.     described in more detail below, beginning with the requirements
  93.     for compiling and installing Apache HTTPD.</p>
  94. </section>
  95.  
  96. <section id="requirements"><title>Requirements</title>
  97.  
  98.     <p>The following requirements exist for building Apache:</p>
  99.  
  100.     <dl>
  101.       <dt>Disk Space</dt>
  102.       <dd>Make sure you have at least 50 MB of temporary free disk
  103.       space available. After installation Apache occupies
  104.       approximately 10 MB of disk space. The actual disk space
  105.       requirements will vary considerably based on your chosen
  106.       configuration options and any third-party modules.</dd>
  107.  
  108.       <dt>ANSI-C Compiler and Build System</dt>
  109.       <dd>Make sure you have an ANSI-C compiler installed. The <a
  110.       href="http://www.gnu.org/software/gcc/gcc.html">GNU C
  111.       compiler (GCC)</a> from the <a
  112.       href="http://www.gnu.org/">Free Software Foundation (FSF)</a>
  113.       is recommended (version 2.7.2 is fine). If you don't have GCC
  114.       then at least make sure your vendor's compiler is ANSI
  115.       compliant. In addition, your <code>PATH</code> must contain
  116.       basic build tools such as <code>make</code>.</dd>
  117.  
  118.       <dt>Accurate time keeping</dt>
  119.       <dd>Elements of the HTTP protocol are expressed as the time of
  120.       day. So, it's time to investigate setting some time
  121.       synchronization facility on your system. Usually the
  122.       <code>ntpdate</code> or <code>xntpd</code> programs are used for
  123.       this purpose which are based on the Network Time Protocol (NTP).
  124.       See the Usenet newsgroup <a
  125.       href="news:comp.protocols.time.ntp">comp.protocols.time.ntp</a>
  126.       and the <a href="http://www.eecis.udel.edu/~ntp/">NTP
  127.       homepage</a> for more details about NTP software and public
  128.       time servers.</dd>
  129.  
  130.       <dt><a href="http://www.perl.org/">Perl 5</a>
  131.       [OPTIONAL]</dt>
  132.       <dd>For some of the support scripts like <a
  133.       href="programs/apxs.html">apxs</a> or <a
  134.       href="programs/dbmmanage.html">dbmmanage</a> (which are
  135.       written in Perl) the Perl 5 interpreter is required (versions
  136.       5.003 or newer are sufficient). If no such interpreter is found by
  137.       the `<code>configure</code>' script there is no harm. Of course, you
  138.       still can build and install Apache 2.0. Only those support scripts
  139.       cannot be used. If you have multiple Perl interpreters
  140.       installed (perhaps a Perl 4 from the vendor and a Perl 5 from
  141.       your own), then it is recommended to use the <code>--with-perl</code>
  142.       option (see below) to make sure the correct one is selected
  143.       by <code>./configure</code>.</dd>
  144.     </dl>
  145. </section>
  146.  
  147. <section id="download"><title>Download</title>
  148.  
  149.     <p>Apache can be downloaded from the <a
  150.     href="http://httpd.apache.org/download.cgi">Apache HTTP Server
  151.     download site</a> which lists several mirrors. You'll find here
  152.     the latest stable release.</p>
  153.  
  154.     <p>After downloading, especially if a mirror site is used, it
  155.     is important to verify that you have a complete and unmodified
  156.     version of the Apache HTTP Server. This can be accomplished by
  157.     testing the downloaded tarball against the PGP signature. This,
  158.     in turn, is a two step procedure. First, you must obtain the
  159.     <a href="http://www.apache.org/dist/httpd/KEYS"><code>KEYS</code></a>
  160.     file from the Apache distribution site, too. (To assure that the
  161.     <code>KEYS</code> file itself has not been modified, it may be a good
  162.     idea to use a file from a previous distribution of Apache or import
  163.     the keys from a public key server.) The keys are imported into
  164.     your personal key ring using one of the following commands (depending
  165.     on your pgp version):</p>
  166.  
  167. <example>$ pgp < KEYS</example>
  168.  
  169.     <p>or </p>
  170.  
  171. <example>$ gpg --import KEYS</example>
  172.  
  173.     <p>The next step is to test the tarball against the PGP
  174.     signature, which should always be obtained from the <a
  175.     href="http://httpd.apache.org/download.cgi">main Apache
  176.     website</a>. A link to the signature file is placed behind the
  177.     corresponding download link or may be found in the particular
  178.     directory at the <a href="http://www.apache.org/dist/httpd/">Apache
  179.     distribution site</a>. Its filename is identical to the source
  180.     tarball with the addition of <code>.asc</code>. Then you can check
  181.     the distribution with one of the following commands (again,
  182.     depending on your pgp version):</p>
  183.  
  184. <example>$ pgp httpd-2_0_<em>NN</em>.tar.gz.asc</example>
  185.  
  186.     <p>or</p>
  187.  
  188. <example>$ gpg --verify httpd-2_0_<em>NN</em>.tar.gz.asc</example>
  189.  
  190.     <p>You should receive a message like</p>
  191.  
  192. <example>Good signature from user "Martin Kraemer
  193.       <martin@apache.org>".</example>
  194.  
  195.     <p>Depending on the trust relationships contained in your key
  196.     ring, you may also receive a message saying that the
  197.     relationship between the key and the signer of the key cannot
  198.     be verified. This is not a problem if you trust the
  199.     authenticity of the <code>KEYS</code> file.</p>
  200.  
  201. </section>
  202.  
  203. <section id="extract"><title>Extract</title>
  204.  
  205.     <p>Extracting the source from the Apache HTTPD tarball is a
  206.     simple matter of uncompressing, and then untarring:</p>
  207.  
  208. <example>
  209.       $ gzip -d httpd-2_0_<em>NN</em>.tar.gz<br />
  210.        $ tar xvf httpd-2_0_<em>NN</em>.tar
  211. </example>
  212.  
  213.     <p>This will create a new directory under the current directory
  214.     containing the source code for the distribution. You should
  215.     <code>cd</code> into that directory before proceeding with
  216.     compiling the server.</p>
  217. </section>
  218.  
  219. <section id="configure"><title>Configuring the source tree</title>
  220.  
  221.     <p>The next step is to configure the Apache source tree for
  222.     your particular platform and personal requirements. This is
  223.     done using the script <code>configure</code> included in the
  224.     root directory of the distribution. (Developers downloading the
  225.     CVS version of the Apache source tree will need to have
  226.     <code>autoconf</code> and <code>libtool</code> installed and
  227.     will need to run <code>buildconf</code> before proceeding with
  228.     the next steps. This is not necessary for official
  229.     releases.)</p>
  230.  
  231.     <p>To configure the source tree using all the default options,
  232.     simply type <code>./configure</code>. To change the default
  233.     options, <code>configure</code> accepts a variety of variables
  234.     and command line options. Environment variables are generally
  235.     placed before the <code>./configure</code> command, while other
  236.     options are placed after. The most important option here is the
  237.     location prefix where Apache is to be installed later, because
  238.     Apache has to be configured for this location to work
  239.     correctly. But there are a lot of other options available for
  240.     your pleasure.</p>
  241.  
  242.     <p>For a short impression of what possibilities you have, here
  243.     is a typical example which compiles Apache for the installation
  244.     tree <code>/sw/pkg/apache</code> with a particular compiler and flags
  245.     plus the two additional modules <module>mod_rewrite</module> and
  246.     <module>mod_speling</module> for
  247.     later loading through the DSO mechanism:</p>
  248.  
  249. <example>
  250.       $ CC="pgcc" CFLAGS="-O2" \<br />
  251.        ./configure --prefix=/sw/pkg/apache \<br />
  252.        --enable-rewrite=shared \<br />
  253.        --enable-speling=shared
  254. </example>
  255.  
  256.     <p>When <code>configure</code> is run it will take several minutes to
  257.     test for the availability of features on your system and build
  258.     Makefiles which will later be used to compile the server.</p>
  259.  
  260.     <p>The easiest way to find all of the configuration flags for
  261.     Apache is to run <code>./configure --help</code>. What follows is a
  262.     brief description of most of the arguments and environment
  263.     variables.</p>
  264.  
  265. <section id="environment"><title>Environment Variables</title>
  266.  
  267.     <p>The <code>autoconf</code> build process uses several environment
  268.     variables to configure the build environment. In general, these
  269.     variables change the method used to build Apache, but not the
  270.     eventual features of the server. These variables can be placed
  271.     in the environment before invoking <code>configure</code>, but
  272.     it is usually easier to specify them on the
  273.     <code>configure</code> command line as demonstrated in the
  274.     example above.</p>
  275.  
  276.     <dl>
  277.       <dt><code>CC=...</code></dt>
  278.  
  279.       <dd>The name of the C compiler command.</dd>
  280.  
  281.       <dt><code>CPPFLAGS=...</code></dt>
  282.  
  283.       <dd>Miscellaneous C preprocessor and compiler options.</dd>
  284.  
  285.       <dt><code>CFLAGS=...</code></dt>
  286.  
  287.       <dd>Debugging and optimization options for the C
  288.       compiler.</dd>
  289.  
  290.       <dt><code>LDFLAGS=...</code></dt>
  291.  
  292.       <dd>Miscellaneous options to be passed to the linker.</dd>
  293.  
  294.       <dt><code>LIBS=...</code></dt>
  295.  
  296.       <dd>Library location information ("<code>-L</code>" and
  297.       "<code>-l</code>" options) to pass to the linker.</dd>
  298.  
  299.       <dt><code>INCLUDES=...</code></dt>
  300.  
  301.       <dd>Header file search directories ("<code>-I<em>dir</em></code>").</dd>
  302.  
  303.       <dt><code>TARGET=...</code> [Default: <code>httpd</code>]</dt>
  304.  
  305.       <dd>Name of the executable which will be built.</dd>
  306.  
  307.       <dt><code>NOTEST_CPPFLAGS=...</code></dt>
  308.  
  309.       <dt><code>NOTEST_CFLAGS=...</code></dt>
  310.  
  311.       <dt><code>NOTEST_LDFLAGS=...</code></dt>
  312.  
  313.       <dt><code>NOTEST_LIBS=...</code></dt>
  314.  
  315.       <dd>These variables share the same function as their
  316.       non-<code>NOTEST</code> namesakes. However, the variables are
  317.       applied to the build process only after autoconf has performed its
  318.       feature testing. This allows the inclusion of flags which
  319.       will cause problems during feature testing, but must be used
  320.       for the final compilation.</dd>
  321.  
  322.       <dt><code>SHLIB_PATH=...</code></dt>
  323.  
  324.       <dd>Options which specify shared library paths for the
  325.       compiler and linker.</dd>
  326.     </dl>
  327. </section>
  328.  
  329. <section id="output"><title>autoconf Output Options</title>
  330.  
  331.     <dl>
  332.       <dt><code>--help</code></dt>
  333.  
  334.       <dd>Prints the usage message including all available options,
  335.       but does not actually configure anything.</dd>
  336.  
  337.       <dt><code>--quiet</code></dt>
  338.  
  339.       <dd>Prevents the printing of the usual "<code>checking...</code>"
  340.       messages.</dd>
  341.  
  342.       <dt><code>--verbose</code></dt>
  343.  
  344.       <dd>Prints much more information during the configuration
  345.       process, including the names of all the files examined.</dd>
  346.     </dl>
  347. </section>
  348.  
  349. <section id="pathnames"><title>Pathnames</title>
  350.  
  351.     <p>There are currently two ways to configure the pathnames
  352.     under which Apache will install its files. First, you can
  353.     specify a directory and have Apache install itself under that
  354.     directory in its default locations.</p>
  355.  
  356.     <dl>
  357.       <dt><code>--prefix=<em>PREFIX</em></code> [Default:
  358.       <code>/usr/local/apache2</code>]</dt>
  359.  
  360.       <dd>Specifies the directory under which the Apache files will
  361.       be installed.</dd>
  362.     </dl>
  363.  
  364.     <p>It is possible to specify that architecture-dependent files
  365.     should be placed under a different directory.</p>
  366.  
  367.     <dl>
  368.       <dt><code>--exec-prefix=<em>EPREFIX</em></code> [Default:
  369.       <code><em>PREFIX</em></code>]</dt>
  370.  
  371.       <dd>Specifies the directory under which
  372.       architecture-dependent files will be placed.</dd>
  373.     </dl>
  374.  
  375.     <p>The second, and more flexible way to configure the install
  376.     path locations for Apache is using the
  377.     <code>config.layout</code> file. Using this method, it is
  378.     possible to separately specify the location for each type of
  379.     file within the Apache installation. The
  380.     <code>config.layout</code> file contains several example
  381.     configurations, and you can also create your own custom
  382.     configuration following the examples. The different layouts in
  383.     this file are grouped into <code><Layout
  384.     FOO>...</Layout></code> sections and referred to by
  385.     name as in <code>FOO</code>.</p>
  386.  
  387.     <dl>
  388.       <dt><code>--enable-layout=<em>LAYOUT</em></code></dt>
  389.  
  390.       <dd>Use the named layout in the <code>config.layout</code>
  391.       file to specify the installation paths.</dd>
  392.     </dl>
  393.  
  394. </section>
  395.  
  396. <section id="modules"><title>Modules</title>
  397.  
  398.     <p>Apache is a modular server. Only the most basic
  399.     functionality is included in the core server. Extended features
  400.     are available in various modules. During the configuration
  401.     process, you must select which modules to compile for use with
  402.     your server. You can view a <a
  403.     href="mod/">list of modules</a> included in
  404.     the documentation. Those modules with a <a
  405.     href="mod/module-dict.html#Status">status</a> of "Base" are
  406.     included by default and must be specifically disabled if you do
  407.     not want them (e.g. <module>mod_userdir</module>). Modules with any
  408.     other status must be specifically enabled if you wish to use them
  409.     (e.g. <module>mod_expires</module>).</p>
  410.  
  411.     <p>There are two ways for a module to be compiled and used with
  412.     Apache. Modules may be <em>statically compiled</em>, which
  413.     means that they are permanently included in the Apache binary.
  414.     Alternatively, if your operating system supports Dynamic Shared
  415.     Objects (DSOs) and <code>autoconf</code> can detect that support, then
  416.     modules may be <em>dynamically compiled</em>. DSO modules are
  417.     stored separately from the Apache binary, and may be included
  418.     or excluded from the server using the run-time configuration
  419.     directives provided by <module>mod_so</module>.
  420.     The mod_so is automatically included in the server if any
  421.     dynamic modules are included in the compilation. If you would
  422.     like to make your server capable of loading DSOs without
  423.     actually compiling any dynamic modules, you can explicitly
  424.     <code>--enable-so</code>.</p>
  425.  
  426.     <dl>
  427.       <dt><code>--enable-<em>MODULE</em>[=shared]</code></dt>
  428.  
  429.       <dd>Compile and include the module <em>MODULE</em>. The
  430.       identifier <em>MODULE</em> is the <a
  431.       href="mod/module-dict.html#ModuleIdentifier">Module
  432.       Identifier</a> from the module documentation without the
  433.       "_module" string. To compile the module as a DSO, add the
  434.       option <code>=shared</code>.</dd>
  435.  
  436.       <dt><code>--disable-<em>MODULE</em></code></dt>
  437.  
  438.       <dd>Remove the module <em>MODULE</em> which would otherwise
  439.       be compiled and included.</dd>
  440.  
  441.       <dt><code>--enable-modules=<em>MODULE-LIST</em></code></dt>
  442.  
  443.       <dd>Compile and include the modules listed in the
  444.       space-separated <em>MODULE-LIST</em>.</dd>
  445.  
  446.       <dt>
  447.       <code>--enable-mods-shared=<em>MODULE-LIST</em></code></dt>
  448.  
  449.       <dd>Compile and include the modules in the space-separated
  450.       <em>MODULE-LIST</em> as dynamically loadable (DSO)
  451.       modules.</dd>
  452.     </dl>
  453.  
  454.     <p>The <em>MODULE-LIST</em> in the
  455.     <code>--enable-modules</code> and
  456.     <code>--enable-mods-shared</code> options is usually a
  457.     space-separated list of module identifiers. For example, to
  458.     enable <module>mod_dav</module> and <module>mod_info</module>,
  459.     you can either use</p>
  460.  
  461. <example>./configure --enable-dav --enable-info</example>
  462.  
  463.     <p>or, equivalently,</p>
  464.  
  465. <example>./configure --enable-modules="dav info"</example>
  466.  
  467.     <p>In addition, the special keywords <code>all</code> or
  468.     <code>most</code> can be used to add all or most of the modules
  469.     in one step. You can then remove any modules that you do not
  470.     want with the <code>--disable-<em>MODULE</em></code> option.
  471.     For example, to include all modules as DSOs with the exception
  472.     of <module>mod_info</module>, you can use</p>
  473.  
  474. <example>
  475.       ./configure --enable-mods-shared=all
  476.       --disable-info
  477. </example>
  478.  
  479.     <p>In addition to the standard set of modules, Apache 2.0 also
  480.     includes a choice of <a href="mpm.html">Multi-Processing
  481.     Modules</a> (MPMs). One, and only one MPM must be included in
  482.     the compilation process. The default MPMs for each platform are
  483.     listed on the <a href="mpm.html">MPM documentation page</a>,
  484.     but can be overridden on the <code>configure</code> command
  485.     line.</p>
  486.  
  487.     <dl>
  488.       <dt><code>--with-mpm=<em>NAME</em></code></dt>
  489.  
  490.       <dd>Choose the mpm <em>NAME</em>.</dd>
  491.     </dl>
  492.  
  493.     <p>To activate an MPM called <var>mpm_name</var>, you can use</p>
  494.  
  495. <example>
  496.      ./configure --with-mpm=<var>mpm_name</var>
  497. </example>
  498.  
  499. </section>
  500.  
  501. <section id="dbm"><title>DBM</title>
  502.  
  503.     <p>Several Apache features, including
  504.     <module>mod_auth_dbm</module> and <module>mod_rewrite</module>'s
  505.     DBM <directive module="mod_rewrite">RewriteMap</directive> use
  506.     simple key/value databases for quick lookups of information.  Apache
  507.     includes SDBM with its source-code, so this database is always
  508.     available.  If you would like to use other database types, the
  509.     following <code>configure</code> options are available:</p>
  510.  
  511. <dl>
  512. <dt><code>--with-gdbm[=<em>path</em>]</code></dt>
  513. <dt><code>--with-ndbm[=<em>path</em>]</code></dt>
  514. <dt><code>--with-berkeley-db[=<em>path</em>]</code></dt>
  515.  
  516. <dd>If no <em>path</em> is specified, Apache will search for the
  517. include files and libraries in the usual search paths.  An explicit
  518. <em>path</em> will cause Apache to look in
  519. <em>path</em><code>/lib</code> and
  520. <em>path</em><code>/include</code> for the relevant files.  Finally,
  521. the <em>path</em> may specify specific include and library paths
  522. separated by a colon.</dd>
  523. </dl>
  524. </section>
  525.  
  526.  
  527. <section id="suexec"><title>Suexec</title>
  528.  
  529.     <p>Apache includes a support program called <a
  530.     href="suexec.html">suexec</a> which can be used to isolate user
  531.     CGI programs. However, if suexec is improperly configured, it
  532.     can cause serious security problems. Therefore, you should
  533.     carefully read and consider the <a href="suexec.html">suexec
  534.     documentation</a> before implementing this feature.</p>
  535. </section>
  536. </section>
  537.  
  538. <section id="compile"><title>Build</title>
  539.  
  540.     <p>Now you can build the various parts which form the Apache
  541.     package by simply running the command:</p>
  542.  
  543. <example>$ make</example>
  544.  
  545.     <p>Please be patient here, since a base configuration takes
  546.     approximately 3 minutes to compile under a Pentium III/Linux
  547.     2.2 system, but this will vary widely depending on your
  548.     hardware and the number of modules which you have enabled.</p>
  549. </section>
  550.  
  551. <section id="install"><title>Install</title>
  552.  
  553.     <p>Now it's time to install the package under the configured
  554.     installation <em>PREFIX</em> (see <code>--prefix</code> option
  555.     above) by running:</p>
  556.  
  557. <example>$ make install</example>
  558.  
  559.     <p>If you are upgrading, the installation will not overwrite
  560.     your configuration files or documents.</p>
  561. </section>
  562.  
  563. <section id="customize"><title>Customize</title>
  564.  
  565.     <p>Next, you can customize your Apache HTTP server by editing
  566.     the <a href="configuring.html">configuration files</a> under
  567.     <code><em>PREFIX</em>/conf/</code>.</p>
  568.  
  569. <example>$ vi <em>PREFIX</em>/conf/httpd.conf</example>
  570.  
  571.     <p>Have a look at the Apache manual under <a
  572.     href="./">docs/manual/</a> or consult <a
  573.     href="http://httpd.apache.org/docs-2.0/"
  574.     >http://httpd.apache.org/docs-2.0/</a> for the most recent version of
  575.     this manual and a complete reference of available <a
  576.     href="mod/directives.html">configuration directives</a>.</p>
  577. </section>
  578.  
  579. <section id="test"><title>Test</title>
  580.  
  581.     <p>Now you can <a href="invoking.html">start</a> your Apache
  582.     HTTP server by immediately running:</p>
  583.  
  584. <example>$ <em>PREFIX</em>/bin/apachectl start</example>
  585.  
  586.     <p>and then you should be able to request your first document
  587.     via URL <code>http://localhost/</code>. The web page you see is located
  588.     under the <directive module="core">DocumentRoot</directive>
  589.     which will usually be <code><em>PREFIX</em>/htdocs/</code>.
  590.     Then <a href="stopping.html">stop</a> the server again by
  591.     running:</p>
  592.  
  593. <example>$ <em>PREFIX</em>/bin/apachectl stop</example>
  594. </section>
  595. <section id="upgrading"><title>Upgrading</title>
  596.  
  597.     <p>The first step in upgrading is to read the release announcement
  598.     and the file <code>CHANGES</code> in the source distribution to
  599.     find any changes that may affect your site.  When changing between
  600.     major releases (for example, from 1.3 to 2.0 or from 2.0 to 2.2),
  601.     there will likely be major differences in the compile-time and
  602.     run-time configuration that will require manual adjustments.  All
  603.     modules will also need to be upgraded to accomodate changes in the
  604.     module API.</p>
  605.  
  606.     <p>Upgrading from one minor version to the next (for example, from
  607.     2.0.55 to 2.0.57) is easier.  The <code>make install</code>
  608.     process will not overwrite any of your existing documents, log
  609.     files, or configuration files.  In addition, the developers make
  610.     every effort to avoid incompatible changes in the
  611.     <code>configure</code> options, run-time configuration, or the
  612.     module API between minor versions.  In most cases you should be able to
  613.     use an identical <code>configure</code> command line, an identical
  614.     configuration file, and all of your modules should continue to
  615.     work.  (This is only valid for versions after 2.0.41; earlier
  616.     versions have incompatible changes.)</p>
  617.  
  618.     <p>If you kept the source tree from your last installation,
  619.     upgrading is even easier.  The file <code>config.nice</code> in
  620.     the root of the old source tree contains the exact
  621.     <code>configure</code> command line that you used to configure the
  622.     source tree.  Then to upgrade from one version to the next, you
  623.     need only copy the <code>config.nice</code> file to the source
  624.     tree of the new version, edit it to make any desired changes, and
  625.     then run:</p>
  626.  
  627.     <example>
  628.     $ ./config.nice<br />
  629.     $ make<br />
  630.     $ make install<br />
  631.     $ <em>PREFIX</em>/bin/apachectl stop<br />
  632.     $ <em>PREFIX</em>/bin/apachectl start<br />
  633.     </example>
  634.  
  635.     <note type="warning">You should always test any new version in your
  636.     environment before putting it into production.  For example, you
  637.     can install and run the new version along side the old one by
  638.     using a different <code>--prefix</code> and a
  639.     different port (by adjusting the <directive
  640.     module="mpm_common">Listen</directive> directive) to test for any
  641.     incompatibilities before doing the final upgrade.</note>
  642. </section>
  643. </manualpage>
  644.