| <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> |
| <HTML> |
| <HEAD> |
| <TITLE>Compiling and Installing Apache</TITLE> |
| </HEAD> |
| |
| <BODY> |
| <!--#include virtual="header.html" --> |
| <h1>Compiling and Installing Apache 1.2</h1> |
| If you wish to download and install an earlier version of Apache please |
| read <a href="install_1_1.html">Compiling and Installing Apache 1.1</a>. |
| |
| <h2>Downloading Apache</h2> |
| Information on the latest version of Apache can be found on the Apache |
| web server at |
| <a href="http://www.apache.org/">http://www.apache.org/</a>. |
| This will list the current release, |
| any more recent beta-test release, together with details of mirror |
| web and anonymous ftp sites. |
| |
| <h2>Compiling Apache</h2> |
| This release of Apache supports the notion of `optional modules'. |
| However, the server has to know which modules are compiled into it, in |
| order for those modules to be effective; this requires generation of a |
| short bit of code (`<code>modules.c</code>') which simply has a list of them. |
| <p> |
| It is also necessary to choose the correct options for your platform. |
| |
| To do this: |
| <ol> |
| <li> |
| Copy the file "<code>Configuration.tmpl</code>" to |
| "<code>Configuration</code>" and then edit |
| "<code>Configuration</code>". This contains the list and settings of various |
| "Rules" and an additional section at the bottom which |
| lists the modules which have been compiled in, and also names the |
| files containing them. You will need to: |
| <ul> |
| <p><LI> Adjust the Rules and <code>EXTRA_CFLAGS|LIBS|LFLAGS|INCLUDES</code> if |
| you feel so inclined. |
| |
| <p><li> Uncomment lines corresponding to those optional modules you wish |
| to include (among the Module lines at the bottom of the file), |
| or add new lines corresponding to custom modules you have written. |
| (See <a href="misc/API.html">API.html</a> for preliminary docs on how to do that). |
| </ul><p> |
| Note that DBM auth has to be explicitly configured in, if you want |
| it --- just uncomment the corresponding line. |
| |
| |
| <p><li> Run the "<code>Configure</code>" script: |
| <blockquote><pre> |
| % Configure |
| Using 'Configuration' as config file |
| + configured for <whatever> platform |
| + setting C compiler to <whatever> * |
| + setting C compiler optimization-level to <whatever> * |
| % |
| </pre></blockquote> |
| This generates new versions of the Makefile and of modules.c. (If |
| you want to maintain multiple configurations, you can say, e.g., |
| <blockquote><pre> |
| % Configure -file Configuration.ai |
| Using alternate config file Configuration.ai |
| + configured for <whatever> platform |
| + setting C compiler to <whatever> * |
| + setting C compiler optimization-level to <whatever> * |
| % |
| </pre></blockquote><p> |
| *: Depending on Configuration and your system, Configure |
| make not print these lines. That's OK |
| |
| <p><li> Type "<code>make</code>". |
| <p> |
| The modules we place in the Apache distribution are the ones we have |
| tested and are used regularly by various members of the Apache |
| development group. Additional modules contributed by members or third |
| parties with specific needs or functions are available at |
| <a href="http://www.apache.org/dist/contrib/modules/"><URL:http://www.apache.org/dist/contrib/modules/></a>. |
| There are |
| instructions on that page for linking these modules into the |
| core Apache code. |
| </ol> |
| <h2>Installing Apache</h2> |
| After compilation, you will have a binary called `httpd' in the |
| <code>src/</code> directory. A binary distribution of Apache will supply this |
| file. |
| <p> |
| The next step is to edit the configuration files for the server. In |
| the subdirectory called `conf' you should find distribution versions |
| of the three configuration files: <code>srm.conf-dist</code>, |
| <code>access.conf-dist</code> and <code>httpd.conf-dist</code>. Copy them to |
| <code>srm.conf</code>, <code>access.conf</code> and <code>httpd.conf</code> |
| respectively. |
| <p> |
| First edit <code>httpd.conf</code>. This sets up general attributes about the |
| server; the port number, the user it runs as, etc. Next edit the |
| <code>srm.conf</code> file; this sets up the root of the document tree, |
| special functions like server-parsed HTML or internal imagemap parsing, etc. |
| Finally, edit the <code>access.conf</code> file to at least set the base cases |
| of access. |
| <p> |
| Finally, make a call to httpd, with a -f to the full path to the |
| httpd.conf file. I.e., the common case: |
| <blockquote><code> |
| /usr/local/etc/apache/src/httpd -f /usr/local/etc/apache/conf/httpd.conf |
| </code></blockquote> |
| The server should be now running. |
| <p> |
| By default the <code>srm.conf</code> and <code>access.conf</code> files are |
| located by name; to specifically call them by other names, use the |
| <A HREF="mod/core.html#accessconfig">AccessConfig</A> and |
| <A HREF="mod/core.html#resourceconfig">ResourceConfig</A> directives in |
| <code>httpd.conf</code>. |
| |
| <!--#include virtual="footer.html" --> |
| </BODY> |
| </HTML> |