Here ya go, I just installed Apache on a new Freebsd 4.2 box. Took only
about 5 mins. Needs more configuring, but it works.
Introduction
============
Like all good things, there are two ways to configure, compile, and
install
Apache. You can go for the 3-minute installation process using the APACI
process described below; or, you can opt for the same mechanism used in
previous versions of Apache, as described in the file 'src/INSTALL'. Each
mechanism has its benefits and drawbacks - APACI is newer and a little
more
raw, but it gets you up and running the least amount of time, whereas the
"Configuration.tmpl" mechanism may be more familiar and give you some more
flexibility to the power user. We'd be very interested in your comments
and
feedback regarding each approach.
Installing the Apache 1.3 HTTP server with APACI
================================================
1. Overview for the impatient
--------------------------
$ ./configure --prefix=PREFIX
$ make
$ make install
$ PREFIX/bin/apachectl start
NOTE: PREFIX is not the string "PREFIX". Instead use the Unix
filesystem path under which Apache should be installed. For
instance use "/usr/local/apache" for PREFIX above.
2. Requirements
------------
The following requirements exist for building Apache:
o Disk Space:
Make sure you have approximately 12 MB of temporary free disk space
available. After installation Apache occupies approximately 3 MB of
disk space (the actual required disk space depends on the amount of
compiled in third party modules, etc).
o ANSI-C Compiler:
Make sure you have an ANSI-C compiler installed. The GNU C compiler
(GCC) from the Free Software Foundation (FSF) is recommended
(version
2.7.2 is fine). If you don't have GCC then at least make sure your
vendors compiler is ANSI compliant. You can find the homepage of GNU
at http://www.gnu.org/ and the GCC distribution under
http://www.gnu.org/order/ftp.html .
o Perl 5 Interpreter [OPTIONAL]:
For some of the support scripts like `apxs' or `dbmmanage' (which
are
written in Perl) the Perl 5 interpreter is required (versions 5.003
and 5.004 are fine). If no such interpreter is found by APACI's
`configure' script this is no harm. Of course, you still can build
and install Apache 1.3. Only those support scripts cannot be used.
If
you have multiple Perl interpreters installed (perhaps a Perl 4 from
the vendor and a Perl 5 from your own), then it is recommended to
use
the --with-perl option (see below) to make sure the correct one is
selected by APACI.
o Dynamic Shared Object (DSO) support [OPTIONAL]:
To provide maximum flexibility Apache now is able to load modules
under runtime via the DSO mechanism by using the pragmatic
dlopen()/dlsym() system calls. These system calls are not available
under all operating systems therefore you cannot use the DSO
mechanism
on all platforms. And Apache currently has only limited built-in
knowledge on how to compile shared objects because this is heavily
platform-dependent. The current state is this:
o Out-of-the-box supported platforms are:
- Linux - SunOS - UnixWare - Darwin/Mac OS
- FreeBSD - Solaris - AIX - OpenStep/Mach
- OpenBSD - IRIX - SCO - DYNIX/ptx
- NetBSD - HPUX - ReliantUNIX
- BSDI - Digital Unix - DGUX
o Entirely unsupported platforms are:
- Ultrix
If your system is not on these lists but has the dlopen-style
interface, you either have to provide the appropriate compiler and
linker flags (see CFLAGS_SHLIB, LDFLAGS_SHLIB and
LDFLAGS_SHLIB_EXPORT
below) manually or at least make sure a Perl 5 interpreter is
installed from which Apache can guess the options.
For more in-depth information about DSO support in Apache 1.3 please
read the document htdocs/manual/dso.html carefully. Especially the
section entitled "Advantages & Disadvantages" because using the DSO
mechanism can have strange side-effects if you are not carefully. BE
WARNED!
3. Configuring the source tree
---------------------------
NOTE: Although we'll often advise you to read the
src/Configuration.tmpl
file parts to better understand the various options in this
section, there is _AT NO TIME_ any need to _EDIT_ this file. The
_COMPLETE_ configuration takes place via command line arguments
and
local shell variables for the ./configure script. The
src/Configuration.tmpl file is just a _READ-ONLY_ resource, here.
Introduction:
The next step is to configure the Apache source tree for your
particular
platform and personal requirements. The most important setup here is
the
location prefix where Apache is to be installed later, because Apache
has
to be configured for this location to work correctly. But there are a
lot
of other options available for your pleasure.
For a short impression of what possibilities you have, here is a
typical
example which compiles Apache for the installation tree /sw/pkg/apache
with a particular compiler and flags plus the two additional modules
mod_rewrite and mod_proxy for later loading through the DSO mechanism:
$ CC="pgcc" OPTIM="-O2" \
./configure --prefix=/sw/pkg/apache \
--enable-module=rewrite --enable-shared=rewrite \
--enable-module=proxy --enable-shared=proxy
The complete reference of all configuration possibilities follows. For
more real-life configuration examples please check out the file
README.configure.
Reference:
$ [CC=...] [CFLAGS_SHLIB=...] [TARGET=...]
[OPTIM=...] [LD_SHLIB=...]
[CFLAGS=...] [LDFLAGS_SHLIB=...]
[INCLUDES=...] [LDFLAGS_SHLIB_EXPORT=...]
[LDFLAGS=...] [RANLIB=...]
[LIBS=...] [DEPS=...]
./configure
[--quiet] [--prefix=DIR] [--enable-rule=NAME]
[--verbose] [--exec-prefix=PREFIX] [--disable-rule=NAME]
[--shadow[=DIR]] [--bindir=EPREFIX] [--add-module=FILE]
[--show-layout] [--sbindir=DIR]
[--activate-module=FILE]
[--help] [--libexecdir=DIR]
[--enable-module=NAME]
[--mandir=DIR]
[--disable-module=NAME]
[--sysconfdir=DIR]
[--enable-shared=NAME]
[--datadir=DIR]
[--disable-shared=NAME]
[--includedir=DIR]
[--permute-module=N1:N2]
[--localstatedir=DIR]
[--runtimedir=DIR] [--enable-suexec]
[--logfiledir=DIR] [--suexec-caller=UID]
[--proxycachedir=DIR]
[--suexec-docroot=DIR]
[--with-layout=[FILE:]ID]
[--suexec-logfile=FILE]
[--suexec-userdir=DIR]
[--with-perl=FILE] [--suexec-uidmin=UID]
[--without-support] [--suexec-gidmin=GID]
[--without-confadjust]
[--suexec-safepath=PATH]
[--without-execstrip]
[--server-uid=UID]
[--server-gid=GID]
Use the CC, OPTIM, CFLAGS, INCLUDES, LDFLAGS, LIBS, CFLAGS_SHLIB,
LD_SHLIB, LDFLAGS_SHLIB, LDFLAGS_SHLIB_EXPORT, RANLIB, DEPS and TARGET
environment variables to override the corresponding default entries in
the src/Configuration.tmpl file (see there for more information about
their usage).
Note: The syntax ``KEY=VALUE ./configure ...'' (one single line!)
is
the GNU Autoconf compatible way of specifying defines and can
be used with Bourne shell compatible shells only (sh, bash,
ksh). If you use a different type of shell either use ``env
KEY=VALUE ./configure ...'' when the `env' command is
available
on your system or use ``setenv KEY VALUE; ./configure ...''
if
you use one of the C-shell variants (csh, tcsh).
Note: The above parameter names are the canonical ones used in
Autoconf-style interfaces. But because src/Configuration.tmpl
uses the prefix EXTRA_ for some variables (e.g. EXTRA_CFLAGS)
these variants are accepted for backward-compatibility
reasons,
too. But please use the canonical Autoconf-style names and
don't rely on this.
Use the --prefix=PREFIX and --exec-prefix=EPREFIX options to configure
Apache to use a particular installation prefix. The default is
PREFIX=/usr/local/apache and EPREFIX=PREFIX.
Use the --bindir=DIR, --sbindir=DIR, --libexecdir=DIR, --mandir=DIR,
--sysconfdir=DIR, --datadir=DIR, --includedir=DIR, --localstatedir=DIR,
--runtimedir=DIR, --logfiledir=DIR and proxycachedir=DIR option to
change
the paths for particular subdirectories of the installation tree.
Defaults are bindir=EPREFIX/bin, sbindir=EPREFIX/sbin,
libexecdir=EPREFIX/libexec, mandir=PREFIX/man, sysconfdir=PREFIX/etc,
datadir=PREFIX/share, includedir=PREFIX/include,
localstatedir=PREFIX/var, runtimedir=PREFIX/var/run,
logfiledir=PREFIX/var/log and proxycachedir=PREFIX/var/proxy.
Note: To reduce the pollution of shared installation locations
(like /usr/local/ or /etc) with Apache files to a minimum the
string ``/apache'' is
...
read more »