mirror of
https://github.com/apache/httpd.git
synced 2025-05-17 15:21:13 +03:00
since the man pages are now in the html docs. - Move information on "starting the server" from install.html to a more proper location "invoking.html" - Add a few more details here and there. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@87877 13f79535-47bb-0310-9956-ffa450edef68
200 lines
7.5 KiB
HTML
200 lines
7.5 KiB
HTML
<!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>
|