| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> |
| <HTML> |
| <HEAD> |
| <TITLE>Compiling and Installing Apache</TITLE> |
| </HEAD> |
| |
| <!-- Background white, links blue (unvisited), navy (visited), red (active) --> |
| <BODY |
| BGCOLOR="#FFFFFF" |
| TEXT="#000000" |
| LINK="#0000FF" |
| VLINK="#000080" |
| ALINK="#FF0000" |
| > |
| <!--#include virtual="header.html" --> |
| |
| <blockquote><strong>Warning:</strong> |
| This document has not been updated to take into account changes |
| made in the 2.0 version of the Apache HTTP Server. Some of the |
| information may still be relevant, but please use it |
| with care. |
| </blockquote> |
| |
| <H1 ALIGN="CENTER">Compiling and Installing Apache 1.3</H1> |
| |
| This document covers compilation and installation of Apache on Unix |
| systems only. For compiling and installation on Windows, see <A |
| HREF="platform/windows.html">Using Apache with Microsoft Windows</A> and for |
| TPF see <A HREF="platform/install-tpf.html">Installing the Apache 1.3 HTTP |
| Server on TPF</A>. |
| |
| <P> |
| |
| UnixWare users will want to consult <A HREF="platform/unixware.html">build notes</A> |
| for various UnixWare versions before compiling. |
| |
| <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. |
| |
| <P> |
| |
| If you downloaded a binary distribution, skip to <A |
| HREF="#install">Installing Apache</A>. Otherwise read the next section |
| for how to compile the server. |
| |
| <H2>Compiling Apache</H2> |
| |
| Compiling Apache consists of three steps: Firstly select which Apache |
| <STRONG>modules</STRONG> you want to include into the server. Secondly create a |
| configuration for your operating system. Thirdly compile the |
| executable. |
| <P> |
| |
| All configuration of Apache is performed in the <CODE>src</CODE> |
| directory of the Apache distribution. Change into this directory. |
| |
| <OL> |
| <LI> |
| Select modules to compile into Apache in the |
| <CODE>Configuration</CODE> file. Uncomment lines corresponding to |
| those optional modules you wish to include (among the AddModule lines |
| at the bottom of the file), or add new lines corresponding to |
| additional modules you have downloaded or written. (See <A |
| HREF="misc/API.html">API.html</A> for preliminary docs on how to |
| write Apache modules). Advanced users can comment out some of the |
| default modules if they are sure they will not need them (be careful |
| though, since many of the default modules are vital for the correct |
| operation and security of the server). |
| <P> |
| |
| You should also read the instructions in the <CODE>Configuration</CODE> |
| file to see if you need to set any of the <CODE>Rule</CODE> lines. |
| |
| |
| <LI> |
| Configure Apache for your operating system. Normally you can just |
| run the <CODE>Configure</CODE> script as given below. However |
| if this fails or you have any special requirements (<EM>e.g.</EM>, to include |
| an additional library required by an optional module) you might need |
| to edit one or more of the following options in the |
| <CODE>Configuration</CODE> file: |
| <CODE>EXTRA_CFLAGS, LIBS, LDFLAGS, INCLUDES</CODE>. |
| <P> |
| |
| 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> * |
| + Adding selected modules |
| + doing sanity check on compiler and options |
| Creating Makefile in support |
| Creating Makefile in main |
| Creating Makefile in os/unix |
| Creating Makefile in modules/standard |
| </PRE> |
| </BLOCKQUOTE> |
| |
| (*: Depending on Configuration and your system, Configure |
| might not print these lines. That's OK).<P> |
| |
| This generates a Makefile for use in stage 3. It also creates a |
| Makefile in the support directory, for compilation of the optional |
| support programs. |
| <P> |
| |
| (If you want to maintain multiple configurations, you can give an |
| option to <CODE>Configure</CODE> to tell it to read an alternative |
| Configuration file, such as <CODE>Configure -file |
| Configuration.ai</CODE>). |
| <P> |
| |
| <LI> |
| Type <CODE>make</CODE>. |
| </OL> |
| |
| 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/" |
| >http://www.apache.org/dist/contrib/modules/</A>>. |
| There are instructions on that page for linking these modules into the |
| core Apache code. |
| |
| <H2><A NAME="install">Installing Apache</A></H2> |
| |
| You will have a binary file called <CODE>httpd</CODE> in the |
| <CODE>src</CODE> directory. A binary distribution of Apache will |
| supply this file. <P> |
| |
| The next step is to install the program and configure it. Apache is |
| designed to be configured and run from the same set of directories |
| where it is compiled. If you want to run it from somewhere else, make |
| a directory and copy the <CODE>conf</CODE>, <CODE>logs</CODE> and |
| <CODE>icons</CODE> directories into it. In either case you should |
| read the <A HREF="misc/security_tips.html#serverroot">security tips</A> |
| describing how to set the permissions on the server root directory.<P> |
| |
| The next step is to edit the configuration files for the server. This |
| consists of setting up various <STRONG>directives</STRONG> in up to three |
| central configuration files. By default, these files are located in |
| the <CODE>conf</CODE> directory and are called <CODE>srm.conf</CODE>, |
| <CODE>access.conf</CODE> and <CODE>httpd.conf</CODE>. To help you get |
| started there are same files in the <CODE>conf</CODE> directory of the |
| distribution, called <CODE>srm.conf-dist</CODE>, |
| <CODE>access.conf-dist</CODE> and <CODE>httpd.conf-dist</CODE>. Copy |
| or rename these files to the names without the <CODE>-dist</CODE>. |
| Then edit each of the files. Read the comments in each file carefully. |
| Failure to setup these files correctly could lead to your server not |
| working or being insecure. You should also have an additional file in |
| the <CODE>conf</CODE> directory called <CODE>mime.types</CODE>. This |
| file usually does not need editing. |
| |
| <P> |
| |
| First edit <CODE>httpd.conf</CODE>. This sets up general attributes |
| about the server: the port number, the user it runs as, <EM>etc.</EM> 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, <EM>etc.</EM> Finally, edit the <CODE>access.conf</CODE> |
| file to at least set the base cases of access. |
| |
| <P> |
| |
| In addition to these three files, the server behavior can be configured |
| on a directory-by-directory basis by using <CODE>.htaccess</CODE> |
| files in directories accessed by the server. |
| |
| <H3>Set your system time properly!</H3> |
| |
| Proper operation of a public web server requires accurate time |
| keeping, since elements of the HTTP protocol are expressed as the time |
| of day. So, it's time to investigate setting up NTP or some other |
| time synchronization system on your Unix box, or whatever the |
| equivalent on NT would be. |
| |
| <H2>Compiling Support Programs</H2> |
| |
| In addition to the main <CODE>httpd</CODE> server which is compiled |
| and configured as above, Apache includes a number of support programs. |
| These are not compiled by default. The support programs are in the |
| <CODE>support</CODE> directory of the distribution. To compile |
| the support programs, change into this directory and type |
| <PRE> |
| make |
| </PRE> |
| |
| <!--#include virtual="footer.html" --> |
| </BODY> |
| </HTML> |