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. | |