blob: 73c91ccdb2d78342c261e255031bb1d94fe16956 [file] [log] [blame]
A P A C H E I N S T A L L A T I O N
NOTE: Windows users please read the documents ../README-WIN.TXT and
http://httpd.apache.org/docs/windows.html, (or the
htdocs/manual/windows.html file included with Apache).
The following applies only to Unix users.
Installing the Apache 1.3 HTTP server with APACI
================================================
For the out-of-the-box build and installation through the new Apache
Autoconf-style Interface (APACI) see the file INSTALL in the parent
directory. This document describes only the manual way of installing Apache.
Installing the Apache 1.3 HTTP server manually
==============================================
Unless you grabbed a binary distribution of Apache, you must compile it for
your specific platform. In order to compile it, you must set compile-time
options (in particular, system type) for your system by editing a
Configuration file, run a script which generates a Makefile and a small
piece of C code, and then compile it.
Compilation
-----------
Building the Apache Web server absolutely REQUIRES an ANSI C-compliant
compiler. If your compiler does not meet this requirement, don't even
bother trying to build the server; it won't work. The server may or may not
build correctly with a C++ compiler. Making it compilable with C++ is not a
goal at this point, so if it doesn't work please use a normal ANSI C
compiler instead.
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 ("modules.c") which simply has a list of them.
It is also necessary to choose the correct options for your platform.
To do this:
1) Copy the file "Configuration.tmpl" to "Configuration" and then edit
"Configuration". 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:
a) Adjust the Rules and EXTRA_CFLAGS|LIBS|LDFLAGS|INCLUDES if
you feel so inclined.
b) 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 API.html
for preliminary docs on how to do that).
Note that DBM auth has to be explicitly configured in, if you want it ---
just uncomment the corresponding line.
2) Run the "Configure" script:
$ ./Configure
Using config file: Configuration
Creating Makefile
+ configured for <whatever> platform
+ setting C compiler 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
$ _
This generates new versions of the Makefiles and of modules.c. (If you
want to maintain multiple configurations, you can say, e.g.,
$ ./Configure -file Configuration.ai
Using config file: Configuration.ai
Creating Makefile
+ configured for <whatever> platform
+ setting C compiler 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
$ _
3) Now compile the program:
$ make
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
http://www.apache.org/dist/contrib/modules/. There are instructions
on that page for linking these modules into the core Apache code.
If during compilation you get a warning about a missing 'regex.h', set
WANTHSREGEX=yes in the 'Configuration', and let The Apache Group know you
needed to do this for your OS by filling out a problem report form at
http://bugs.apache.org/, or by sending a mail message to
apache-bugs@apache.org. Include the output of the command "uname -a".
Installation
------------
After compilation, you will have a binary called "httpd" in this src/
directory. If you received a binary distribution of apache, you should have
this file already.
The next step is to edit the configuration files for the server. In the
top-level subdirectory called "conf" you should find distribution versions
of the three configuration files: srm.conf-dist, access.conf-dist, and
httpd.conf-dist. Copy them to srm.conf, access.conf, httpd.conf
respectively.
First edit httpd.conf. This sets up general attributes about the server -
the port number, the user it runs as, etc. Next edit the 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
access.conf file to at least set the base cases of access. Documentation for
all of these is located at http://www.apache.org/docs/.
Finally, make a call to httpd, with a -f to the full path to the httpd.conf
file. I.e., the common case:
$ /usr/local/apache/httpd -f /usr/local/apache/conf/httpd.conf
And voila! The server should be running.
By default the srm.conf and access.conf files are located by name - to
specifically call them by other names, use the AccessConfig and
ResourceConfig directives in httpd.conf.
Set your system time properly!
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.
Upgrading an Existing Apache Environment
----------------------------------------
Between releases of Apache, there are several files that are likely to get
changed (aside from the source, of course). These include:
src/Makefile.tmpl
src/Configuration.tmpl
src/Configure
conf/*.conf-dist
conf/mime.types
It's recommended that you unpack a new Apache version distribution into a
different directory than the existing one, and check these files against the
ones you already have for new or changed directives. It's almost certain
that the Configure, Configuration.tmpl, and Makefile.tmpl files are going to
change, so pay particular attention to merging your existing Configuration
settings with the ones in the Configuration.tmpl file to make a new
Configuration file in the new Apache src directory. Then follow the steps
for a new installation to build and test the new server before replacing the
existing Apache directory tree with the one from the new distribution.