Mailing List Archive

cvs commit: apache-1.3/src README.DSO
rse 98/05/06 08:44:31

Modified: . README.configure INSTALL
src README.DSO
Log:
Make some documents up-to-date for the 1.3b7 release.

Revision Changes Path
1.8 +19 -20 apache-1.3/README.configure

Index: README.configure
===================================================================
RCS file: /export/home/cvs/apache-1.3/README.configure,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- README.configure 1998/04/29 06:24:53 1.7
+++ README.configure 1998/05/06 15:44:25 1.8
@@ -78,9 +78,10 @@

Additionally if some of the shown paths still don't fit for your particular
situation, you can use the --bindir, --sbindir, --libexecdir, --mandir,
- --sysconfdir, --datadir and --localstatedir options to adjust the layout as
- required. Always check with --layout the resulting directory layout which
- would be used for installation.
+ --sysconfdir, --datadir, --localstatedir, --runtimedir, --logfiledir and
+ --proxycachedir options to adjust the layout as required. Always check with
+ --layout the resulting directory layout which would be used for
+ installation.

suEXEC support
--------------
@@ -116,15 +117,15 @@

Then APACI first determines the GNU platform triple, creates a shadow tree
in src.<gnu-triple> plus corresponding Makefile.<gnu-triple> and then
- performs the complete build process with this shadow tree.
+ performs the complete build process inside this shadow tree.

Dynamic Shared Object (DSO) support
-----------------------------------

- Apache 1.3 supports building modules as shared objects on all major
+ Apache 1.3 supports building modules as shared objects on all major Unix
platforms (see section "Supported Platforms" in file src/README.DSO for
- details). APACI has a nice way of enabling the building of these shared
- objects and automatically installing them:
+ details). APACI has a nice way of enabling the building of DSO-based
+ modules and automatically installing them:

$ ./configure --prefix=/path/to/apache \
--enable-module=rewrite \
@@ -134,11 +135,9 @@

This builds and installs Apache with the default configuration except that
it adds the mod_rewrite module and automatically builds and installs it as a
- shared object, so it is optionally available for loading under runtime. To
- make your live even more easy APACI additionally inserts a corresponding
- (but out-commented) `LoadModule' line in the httpd.conf file in the
- installation phase. Just uncomment this line and you have mod_rewrite
- available.
+ DSO, so it is optionally available for loading under runtime. To make your
+ life even more easy APACI additionally inserts a corresponding `LoadModule'
+ line into the httpd.conf file in the installation phase.

APACI also supports a variant of the --enable-shared option:

@@ -149,7 +148,7 @@

This enables shared object building for the maximum of modules, i.e. all
enabled modules (--enable-module or the default set) except for mod_so
- itself (the bootstrapping module for shared object support). So, to build a
+ itself (the bootstrapping module for DSO support). So, to build a
full-powered Apache with maximum flexibility by building and installing most
of the modules, you can use:

@@ -162,8 +161,8 @@
This 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 or mod_log_agent and mod_log_referer which are deprecated)
- and then enables shared object support for all of them. This way you get all
- these modules installed and you then can configure under runtime (via the
+ and then enables DSO support for all of them. This way you get all these
+ modules installed and you then can decide under runtime (via the
`LoadModule') directives which ones are actually used. Especially a very
useful for vendor package maintainers to provide a flexible Apache package.

@@ -184,7 +183,7 @@

This automatically copies mod_foo.c to src/modules/extra/, activates it in
the configuration and builds Apache with it. A very useful way is to combine
- this with the shared object support:
+ this with the DSO support:

$ ./configure --prefix=/path/to/apache \
--add-module=/path/to/mod_foo.c \
@@ -193,8 +192,8 @@
$ 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 this mod_foo under runtime.
+ additionally builds mod_foo as a DSO and adds a `LoadModule' line to the
+ httpd.conf file to activate it for loading under runtime.

Apache and mod_perl
-------------------
@@ -206,7 +205,7 @@
mod_perl-1.XX.tar.gz can be found on http://perl.apache.org/src/. Here is
how you can install Apache with mod_perl:

- $ cd mod_perl-1.XX
+ $ cd mod_perl-1.11
$ perl Makefile.PL
ReadLine support enabled
Configure mod_perl with ../apache-1.3/src ? [y] y
@@ -222,7 +221,7 @@
This automatically builds and installs Apache 1.3 with mod_perl. After
additionally installing the Perl side of mod_perl via

- $ cd ../mod_perl-1.XX
+ $ cd ../mod_perl-1.11
$ perl Makefile.PL NO_HTTPD=1
$ make all install




1.25 +31 -25 apache-1.3/INSTALL

Index: INSTALL
===================================================================
RCS file: /export/home/cvs/apache-1.3/INSTALL,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -r1.24 -r1.25
--- INSTALL 1998/05/06 15:17:56 1.24
+++ INSTALL 1998/05/06 15:44:26 1.25
@@ -9,16 +9,15 @@
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.
+ 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
@@ -47,22 +46,23 @@
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 at
- http://www.gnu.ai.mit.edu/ and the GCC distribution under
+ (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.ai.mit.edu/ and the GCC distribution under
http://www.gnu.ai.mit.edu/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. 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.
+ 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]:

@@ -83,7 +83,7 @@
- Solaris

o Entirely unsupported platforms are:
- - Ultrix (because no dlopen-style interface)
+ - Ultrix

If your system is not on these lists but has the dlopen-style
interface, you either have to provide the appropriate compiler and
@@ -119,7 +119,7 @@
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="-O6" \
+ $ CC="pgcc" OPTIM="-O2" \
./configure --prefix=/sw/pkg/apache \
--enable-module=rewrite --enable-shared=rewrite \
--enable-module=proxy --enable-shared=proxy
@@ -244,6 +244,12 @@
a --enable-module=so option because the bootstrapping module
mod_so is always needed for DSO support.

+ Note 4: When you later want to extend your Apache installation via
+ third-party modules through the DSO+APXS mechanism make sure
+ that you at least compile with mod_so included, even when no
+ distributed modules are build as shared objects. This can be
+ achieved by explicitly using --enable-module=so.
+
Use the --with-perl=FILE option to select a particular Perl interpreter
executable to be used with Apache. Per default APACI tries to find it
automatically. But if multiple Perl instances exist on your system you
@@ -277,8 +283,8 @@
$ make

Please be patient here, this takes approximately 2 minutes to complete
- under a Pentium-166/FreeBSD-2.2 system, dependend on the amount of modules
- you have enabled.
+ under a Pentium-166/FreeBSD-2.2 system, dependend on the amount of
+ modules you have enabled.

5. Installing the package
----------------------



1.9 +15 -14 apache-1.3/src/README.DSO

Index: README.DSO
===================================================================
RCS file: /export/home/cvs/apache-1.3/src/README.DSO,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- README.DSO 1998/05/02 11:15:08 1.8
+++ README.DSO 1998/05/06 15:44:29 1.9
@@ -277,22 +277,23 @@

In other words: When a module is compiled as a DSO it automatically
results in a higher priority than any statically compiled modules. This
- can have strange side-effects because of different execution order. As a
- consequence the rule of thumb is this: Either compile all modules
- statically or all modules as DSO (--enable-shared=max) when you want to
- avoid side-effects. And only compile just a subset of modules as DSO when
- you are sure the different execution order has no side-effects for your
- configuration. BE WARNED!
+ can have strange side-effects because of different execution order. To
+ overcome this problem the Apache installation process automatically
+ inserts ClearModuleList+AddModule directives into the initial httpd.conf
+ file which re-create the chained list of modules in the correct order.
+ So whenever you change the list of loaded modules make sure to also
+ update this ClearModule+AddModule directives accordingly.

- Because DSO modules cannot be linked against other DSO-based libraries
- (ld -lfoo) you cannot use the DSO mechanism for all types of modules. Or
- in other words, modules compiled as DSO files are restricted to only use
- symbols from the Apache core, from the C library (libc) and all other
- dynamic or static libraries used by the Apache core, or from static
- library archives (libfoo.a) containing position independend code. The
- only chance to use other code is to either make sure the Apache core
- itself already contains a reference to it or loading the code yourself
- via dlopen().
+ (ld -lfoo) on all platforms (for instance a.out-based platforms usually
+ don't provide this functionality while ELF-based platforms do) you cannot
+ use the DSO mechanism for all types of modules. Or in other words,
+ modules compiled as DSO files are restricted to only use symbols from the
+ Apache core, from the C library (libc) and all other dynamic or static
+ libraries used by the Apache core, or from static library archives
+ (libfoo.a) containing position independend code. The only chance to use
+ other code is to either make sure the Apache core itself already contains
+ a reference to it or loading the code yourself via dlopen().

- Under some platforms (many SVR4 systems) there is no way to force the
linker to export all global symbols for use in DSO's when linking the