If you downloaded a binary distribution, skip to Installing Apache. Otherwise read the next section for how to compile the server.
All configuration of Apache is performed in the
directory of the Apache distribution. Change into this directory.
Configuration file. 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
additional modules you have downloaded or written. (See API.html 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).
You should also read the instructions in the
file to see if you need to set any of the
Configure script as given below. However
if this fails or you have any special requirements (e.g. to include
an additional library required by an optional module) you might need
to edit one or more of the following options in the
EXTRA_CFLAGS, LIBS, LFLAGS, INCLUDES.
(*: Depending on Configuration and your system, Configure make not print these lines. That's OK).% Configure Using 'Configuration' as config file + configured for <whatever> platform + setting C compiler to <whatever> * + setting C compiler optimization-level to <whatever> * %
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.
(If you want to maintain multiple configurations, you can give a
Configure to tell it to read an alternative
Configuration file, such as
httpd in the
src directory. A binary distribution of Apache will
supply this file.
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
icons directories into it.
The next step is to edit the configuration files for the server. This
consists of setting up various directives in up to three
central configuration files. By default, these files are located in
conf directory and are called
httpd.conf. To help you get
started there are same files in the
conf directory of the
or rename these files to the names without the
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
conf directory called
file usually does not need editing.
httpd.conf. This sets up general attributes
about the server: the port number, the user it runs as, etc. Next
srm.conf file; this sets up the root of the
document tree, special functions like server-parsed HTML or internal
imagemap parsing, etc. Finally, edit the
file to at least set the base cases of access.
In addition to these three files, the server behavior can be configured
on a directory-by-directory basis by using
files in directories accessed by the server.
httpd. This will look for
httpd.conf in the location compiled into the code (by
this file is somewhere else, you can give the real
location with the -f argument. For example:
/usr/local/etc/apache/src/httpd -f /usr/local/etc/apache/conf/httpd.confIf all goes well this will return to the command prompt almost immediately. This indicates that the server is now up and running. If anything goes wrong during the initiallisation of the server you will see an error message on the screen. If the server started ok, you can now use your browser to connect to the server and read the documentation. If you are running the browser on the same machine as the server and using the default port of 80, a suitable URL to enter into your browser is
Note that when the server starts it will create a number of child processes to handle the requests. If you started Apache as the root user, the parent process will continue to run as root while the children will change to the user as given in the httpd.conf file.
If when you run
httpd it complained about being unable to
"bind" to an address, then either some other process is already using
the port you have configured Apache to use, or you are running httpd
as a normal user but trying to use port below 1024 (such as the
default port 80).
If the server is not running, read the error message displayed
when you run httpd. You should also check the server
error_log for additional information (with the default configuration,
this will be located in the file
error_log in the
If you want your server to continue running after a system reboot, you
should add a call to
httpd to your system startup files
rc.local or a file in an
rc.N directory). This will start Apache as root.
Before doing this ensure that your server is properly configured
for security and access restrictions.
To stop Apache send the parent process a TERM signal. The PID of this
process is written to the file
httpd.pid in the
logs directory (unless configured otherwise). Do not
attempt to kill the child processes because they will be renewed by
the parent. A typical command to stop the server is:
kill -TERM `cat /usr/local/etc/apache/logs/httpd.pid`
For more information about Apache command line options, configuration and log files, see Starting Apache. For a reference guide to all Apache directives supported by the distributed modules, see the Apache directives.
httpd 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
support directory of the distribution. To compile
the support programs, change into this directory and type