| <!--%hypertext --> |
| <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> |
| <HTML> |
| <HEAD> |
| <TITLE>Compiling and Installing Apache</TITLE> |
| </HEAD> |
| |
| <BODY> |
| <!--/%hypertext --> |
| |
| <h1>Compiling and Installing Apache</h1> |
| <h2>Downloading Apache</h2> |
| Information on the latest version of Apache can be found on the Apache |
| web server at http://www.apache.org/. 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> |
| If you are satisfied with our standard module set, and expect to |
| continue to be satisfied with it, then you can just edit the stock |
| <code>Makefile</code> and compile as you have been doing previously. If you |
| would |
| like to select optional modules, however, you need to run the |
| configuration script. |
| <p> |
| To do this: |
| <ol> |
| <li>Edit the file `<code>Configuration</code>'. This contains the per-machine |
| config settings of the Makefile, and also 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: |
| <ol> |
| <li> Select a compiler and compilation options as appropriate to |
| your machine. |
| <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. |
| <p> |
| Note that DBM auth has to be explicitly configured in, if you want |
| it; just uncomment the corresponding line. |
| </ol> |
| <li> Run the `Configure' script: |
| <blockquote><code> |
| % Configure<br> |
| Using 'Configuration' as config file<br> |
| %</code></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><code> |
| % Configure -file Configuration.ai<br> |
| Using alternate config file Configuration.ai<br> |
| %</code></blockquote> |
| |
| <li>Type `make'. |
| <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="core.html#accessconfig">AccessConfig</A> and |
| <A HREF="core.html#resourceconfig">ResourceConfig</A> directives in |
| <code>httpd.conf</code>. |
| |
| <!--%hypertext --> |
| <hr> |
| <A HREF="../"><IMG SRC="../images/apache_home.gif" ALT="Home"></A> |
| <A HREF="./"><IMG SRC="../images/apache_index.gif" ALT="Index"></A> |
| |
| </BODY> |
| </HTML> |
| <!--/%hypertext --> |