httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Dirk-Willem van Gulik <dirk.vangu...@jrc.it>
Subject Re: Voting: APACI
Date Wed, 25 Mar 1998 17:17:03 GMT


On Wed, 25 Mar 1998, Dirk-Willem van Gulik wrote:

> 
> Hmm..
> 
> I've jus tried it; for a x-system build and it works fine
> for some flavours of BSD, Solaris and OSF. And it does make
> auto (re-) installations indeed a very smooth afair.
> 
> Though I would be wary of including it for a real release I really 
> would like to see it included say for the 1.3, because if it works

Blush, blush, that should have been 1.4 of course. I've never been
good at counting.

> and does not need an insane amounth of support; then it would
> be a very worthwile addition !
> 
> Dw
> 
> On Wed, 25 Mar 1998 rse@engelschall.com wrote:
> 
> > 
> > Voting APACI
> > ------------
> > 
> > Ok, APACI is old enough and now it's time to either consider it to included
> > for Apache 1.3 or finally ignored for the Apache Group. I've added a very long
> > description to apache-1.3/STATUS to give you the chance to make a fair
> > decision, even if you still don't know anything about APACI: For thise of
> > you who don't want to try it out theirself (perhaps less time) I'll append
> > the APACI README and INSTALL file to this posting.
> > 
> > Please add your votes to the STATUS file. Thanks.
> > 
> > Greetings,
> >                                        Ralf S. Engelschall
> >                                        rse@engelschall.com
> >                                        www.engelschall.com
> >       _    ____   _    ____ ___ 
> >      / \  |  _ \ / \  / ___|_ _|
> >     / _ \ | |_) / _ \| |    | | 
> >    / ___ \|  __/ ___ \ |___ | | 
> >   /_/   \_\_| /_/   \_\____|___|
> >                               
> >   APache 1.3 AutoConf Interface (APACI)
> >   =====================================
> > 
> >   APACI is an Autoconf-style interface for the Unix side of the Apache 1.3
> >   HTTP server source distribution. It is _NOT_ GNU Autoconf-based, i.e.  no
> >   GNU Autoconf stuff is actually used. Instead APACI just provides a similar
> >   batch configuration interface and a corresponding out-of-the-box
> >   installation procedure.
> > 
> >   The basic goal is to provide the following commonly known and expected
> >   procedure for out-of-the-box building and installing a package like Apache:
> > 
> >     $ gunzip <apache-1.3bX.tar.gz | tar xvf -
> >     $ ./configure --prefix=/path/to/apache [...]
> >     $ make
> >     $ make install
> >   
> >   After these steps Apache 1.3 is completely installed and already initially
> >   configured, so you can immediately fire it up the first time via
> > 
> >     $ /path/to/apache/sbin/apachectl start
> > 
> >   to get your first success event with the Apache HTTP server without having
> >   to fiddle around a long time. On the other hand APACI provides a lot of
> >   options to adjust the build and installation process for flexible
> >   customizing your Apache installation. So, APACI provides both:
> >   Out-of-the-box building and installation for the impatient and powerful
> >   custom configuration for the experts.
> > 
> >   Examples
> >   ========
> > 
> >   In the following typical or even interesting variants of the available
> >   configuration step are shown to give you an impression what APACI is good
> >   for.
> > 
> >   Standard installation
> >   ---------------------
> > 
> >   The standard installation is done via
> > 
> >     $ ./configure --prefix=/path/to/apache
> >     $ make
> >     $ make install
> > 
> >   This builds Apache 1.3 with the standard set of enabled modules
> >   (automatically determined from SRC/Configuration.tmpl) under a
> >   GNU-conforming subdirectory layout under /path/to/apache. For using the old
> >   Apache 1.2 subdirectory layout additionally use the --compat option:
> > 
> >     $ ./configure --compat --prefix=/path/to/apache
> >     $ make
> >     $ make install
> > 
> >   Dynamic Shared Object (DSO) support
> >   -----------------------------------
> > 
> >   Apache 1.3 support building modules as shared objects on all major platforms
> >   like FreeBSD, Linux, SunOS, Solaris, IRIX, OSF/1 and UnixWare. APACI has a
> >   nice way of enabling and automatically installing these shared objects:
> > 
> >     $ ./configure --prefix=/path/to/apache \
> >                   --enable-module=rewrite \
> >                   --enable-shared=rewrite 
> >     $ make
> >     $ make install
> > 
> >   This builds and installs Apache with the default configuration except that
> >   it adds mod_rewrite and automatically builds and installs mod_rewrite as a
> >   shared object, so it is optionally available for loading under runtime.
> > 
> >   APACI also support a variant of the --enable-shared option:
> > 
> >     $ ./configure --prefix=/path/to/apache \
> >                   --enable-shared=max
> >     $ make
> >     $ make install
> > 
> >   This enables shared object building for the maximum of modules, i.e.  all
> >   enables modules (--enable-module or the default set) except for mod_so
> >   itself (the bootstrapping module for shared object support). To build
> >   a full-powered Apache with maximum flexiblity by building and installing
> >   most of the modules, you can use:
> > 
> >     $ ./configure --prefix=/path/to/apache \
> >                   --enable-modules=most \
> >                   --enable-shared=max
> >     $ make
> >     $ make install
> > 
> >   This is first enables most of the modules (all modules except some
> >   problematic ones like mod_auth_db which needs third party libraries not
> >   available on every platform) and then enables shared object support for all
> >   of them. This way you get all these modules installed and you then can
> >   configure via the "LoadModule" directive which ones are actually used. 
> > 
> >   On-the-fly added additional/private module
> >   ------------------------------------------
> > 
> >   For Apache there are a lot of modules flying around on the net which solve
> >   particular problems. For a good reference see the Apache Module Registory at
> >   http://www.covalent.net/module_registry/ and the contribution directory at
> >   http://www.apache.org/dist/contrib/modules/. These modules usually come in a
> >   file named mod_foo.c. APACI support adding these sources on-the-fly to the
> >   build process:
> > 
> >     $ ./configure --prefix=/path/to/apache \
> >                   --add-module=/path/to/mod_foo.c
> >     $ make
> >     $ make install
> > 
> >   This automatically adds mod_foo.c to SRC/modules/extra/, enables it in the
> >   configuration and builds Apache with it. A useful way is to combine this
> >   with the shared object support:
> > 
> >     $ ./configure --prefix=/path/to/apache \
> >                   --add-module=/path/to/mod_foo.c \
> >                   --enable-shared=foo
> >     $ make
> >     $ make install
> > 
> >   This builds and installs Apache with the default set of modules, but
> >   additionally builds mod_foo as a shared object and adds a "LoadModule" line
> >   to the httpd.conf file, so later you can enable your own module under
> >   runtime.
> > 
> >   mod_perl Support
> >   ----------------
> > 
> >   The Apache/Perl integration project (http://perl.apache.org/) from Doug
> >   McEachern is a very powerful approach to integrate a Perl 5 interpreter into
> >   the Apache HTTP server both for running Perl programs and for programming
> >   Apache modules in Perl. The distribution mod_perl-1.XX.tar.gz can be found
> >   on http://perl.apache.org/src/ and APACI has support for adding its Apache
> >   part on-the-fly to the building process of Apache 1.3:
> > 
> >     $ ./configure --prefix=/path/to/apache \
> >                   --with-perl=/path/to/bin/perl \
> >                   --add-modperl=/path/to/mod_perl-1.XX
> >                   --enable-shared=perl
> >     $ make
> >     $ make install
> > 
> >   This automatically builds and installs Apache 1.3 with mod_perl 1.XX as a
> >   shared object under /tmp/apache. After additionally installing the Perl side
> >   of mod_perl via
> > 
> >     $ cd /path/to/mod_perl-1.XX
> >     $ /path/to/bin/perl Makefile.PL NO_HTTPD=1
> >     $ make all install
> > 
> >   you can enable the created "LoadModule" line in /tmp/apache/etc/httpd.conf
> >   and fire up Apache with mod_perl.
> > 
> >   suEXEC support
> >   --------------
> > 
> >   The suEXEC feature of Apache provides a mechanism to run CGI and SSI
> >   programs under the user and group id of the owner of the program. It is
> >   neither installed nor configured per default for Apache 1.3, but APACI
> >   supports it.
> > 
> >      $ ./configure --prefix=/path/to/apache \
> >                    --enable-suexec \
> >                    --suexec-caller=www \
> >                    --suexec-userdir=.www
> >      $ make
> >      $ make install
> > 
> >   This automatically builds and installs Apache 1.3 with suEXEC support for
> >   the caller uid "www" and the user subdirs ".www".  The access paths for the
> >   suexec program are automatically adjusted and the suexec program is
> >   installed, so Apachecan find it on startup.
> > 
> >   Building multiple platforms in parallel
> >   ---------------------------------------
> > 
> >   When you want to compile Apache for multiple platforms in parallel it is
> >   useful to share the source tree but build the object files in separated
> >   subtrees. This can be accomplished by letting APACI compile in a shadow tree
> >   like this:
> > 
> >     $ ./configure --shadow --prefix=/path/to/apache
> >     $ make
> >     $ make install
> > 
> >   Then APACI runs the src/helpers/GuessOS script to determine the GNU triple
> >   for the underlaying platform, creates a shadow tree in src.<gnu-triple>
and
> >   then performs the complete build process in this shadow tree.
> > 
> > 
> >  Installing the Apache 1.3 HTTP server with APACI
> >  ================================================
> > 
> >  1. Overview for the impatient
> >     --------------------------
> > 
> >     $ ./configure --prefix=PREFIX
> >     $ make
> >     $ make install
> >     $ PREFIX/sbin/apachectl start
> > 
> >  2. Requirements
> >     ------------
> > 
> >     The following requirements exist for building Apache:
> > 
> >     o  Disk Space: 
> >        Make sure you have 8 MB of temporary free disk space.  After
> >        installation Apache occupies approximately 3 MB of disk space.
> > 
> >     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. If you
> >        don't have GCC then at least make sure your vendors compiler is ANSI
> >        compliant.  You can find the homepage of GNU on
> >        http://www.gnu.ai.mit.edu/ and the GCC distribution on
> >        http://www.gnu.ai.mit.edu/order/ftp.html .
> > 
> >  3. Configuring the source tree
> >     ---------------------------
> > 
> >     The next step is to configure the Apache source tree for your particular
> >     system/platform. The important information here is to set a location
> >     prefix where Apache is to be installed later, because Apache has to be
> >     configured for this location to work correctly.
> > 
> >         $ [CC=...] [OPTIM=...] [CFLAGS=...] [CFLAGS_SHLIB=...]
> >           [LDFLAGS=...] [LDFLAGS_SHLIB=...]
> >           [LIBS=...] [INCLUDES=...] 
> >           [RANLIB=...] [LDFLAGS_SHLIB_EXPORT=...] 
> >           ./configure [--prefix=DIR]
> >                       [--exec-prefix=PREFIX]
> >                       [--bindir=EPREFIX]
> >                       [--sbindir=DIR]
> >                       [--libexecdir=DIR]
> >                       [--mandir=DIR]
> >                       [--sysconfdir=DIR]
> >                       [--datadir=DIR]
> >                       [--localstatedir=DIR]
> >                       [--compat]
> >                       [--display-layout]
> >                       [--enable-rule=RULENAME]
> >                       [--disable-rule=RULENAME]
> >                       [--enable-module=MODULENAME]
> >                       [--disable-module=MODULENAME]
> >                       [--enable-shared=MODULENAME]
> >                       [--disable-shared=MODULENAME]
> >                       [--add-module=FILE]
> >                       [--add-modperl=DIR]
> >                       [--enable-suexec]
> >                       [--suexec-caller=UID]
> >                       [--suexec-userdir=SUBDIR]
> >                       [--shadow]
> >                       [--quiet]
> >                       [--verbose]
> > 
> >     Use the CC, OPTIM, CFLAGS, CFLAGS_SHLIB, LDFLAGS, LDFLAGS_SHLIB, LIBS,
> >     INCLUDES, RANLIB and LDFLAGS_SHLIB_EXPORT environment variables to
> >     override the corresponding default entries in the src/Configuration.tmpl
> >     file.
> > 
> >     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 and --localstatedir=DIR option to change
> >     the path for a particular subdirectory of the installation tree. Defaults
> >     are bindir=EPREFIX/bin, sbindir=EPREFIX/sbin, libexecdir=EPREFIX/libexec,
> >     mandir=PREFIX/man, sysconfdir=PREFIX/etc, datadir=PREFIX/share and
> >     localstatedir=PREFIX/var.
> > 
> >     Use the --compat option to install Apache into a installation tree which
> >     has a similar layout than the one where Apache 1.2 was installed into.
> > 
> >     Use the --display-layout option to check the final installation path
> >     layout while fiddling with the above options.
> > 
> >     Use the --enable-rule=RULENAME and --disable-rule=RULENAME options to
> >     enable or disable a particular Rule from the Apache src/Configuration.tmpl
> >     file. The defaults (yes=enabled, no=disabled) can be seen when running
> >     `./configure --help'.
> > 
> >     Use the --enable-module=MODULENAME and --disable-module=MODULENAME options
> >     to enable or disable a particular Module from the Apache
> >     src/Configuration.tmpl file. The defaults (yes=enabled, no=disabled) can
> >     be seen when running `./configure --help'. There are two special
> >     MODULENAME variants: "all" for enabling or disabling all modules and
> >     "most" for enabling or disabling only these modules which are useable on
> >     all platforms.
> > 
> >     Use the --enable-shared=MODULENAME and --disable-shared=MODULENAME options
> >     to enable or disable the shared object support for a particular Module
> >     from the Apache src/Configuration.tmpl file. The defaults (yes=enabled,
> >     no=disabled) can be seen when running `./configure --help'. There are two
> >     special MODULENAME variants: "max" for enabling or disabling all modules
> >     except the bootstrapping module mod_so and "remain" for enabling or
> >     disabling only these modules which are still not enabled.
> > 
> >     Use the --add-module=FILE option to on-the-fly add a module to the Apache
> >     package build process. FILE has be a valid path to a C source file, i.e.
> >     FILE usually /path/to/mod_xxx.c 
> > 
> >     Use the --add-modperl=DIR option to on-the-fly add the Apache-part of the
> >     mod_perl source distribution to the Apache package build process. DIR has
> >     be a valid path to the mod_perl source tree.
> > 
> >     Use the --enable-suexec option to enable the suEXEC feature by building
> >     and installing the "suexec" support program. Use --suexec-caller=UID to
> >     set the allowed caller user id and --suexec-userdir=SUBDIR to set the user
> >     subdirectory for this feature.
> >     
> >     Use the --shadow option to let APACI create a shadow subtree of the source
> >     subtree. This is useful when you want to build for different platforms in
> >     parallel (usually through a NFS or AFS mounted filesystem).
> > 
> >     Use the --quiet option to disable all configuration verbose messages.
> > 
> >     Use the --verbose option to enable additional verbose messages.
> >     
> >  4. Building the package
> >     --------------------
> >     
> >     Now you can build the programs, manpages and include files which form the
> >     Apache package by running the command
> > 
> >        $ make 
> > 
> >     Please be patient, this takes approximately 5 minutes to complete under a
> >     Pentium-166/FreeBSD-2.1 system. 
> > 
> >  5. Installing the package
> >     ----------------------
> >     
> >     Now its time to install the package's programs under the installation
> >     prefix by running:
> > 
> >        $ make install
> > 
> >     For the paranoid hackers under us: The above command really installs under
> >     prefix _only_, i.e. no other stuff from your system is touched. 
> > 
> >  6. Testing the package
> >     -------------------
> > 
> >     Now you can fire up your Apache HTTP server by running
> > 
> >        $ PREFIX/sbin/apachectl start
> > 
> >     and then you should be able to request your first document via URL
> >     http://localhost/. Then stop the server again by running:
> >  
> >        $ PREFIX/sbin/apachectl stop
> > 
> >  7. Customizing the package
> >     -----------------------
> > 
> >     Finally you can customize your Apache HTTP server by editing the files
> >     under PREFIX/etc/.
> > 
> > 
> 
> 


Mime
View raw message