/////////////////////////////////////////////////////////////////////////////
// Improved mod_frontpage                                                  //
// for Apache 1.3.17                                                       //
// v1.5.1 - February 21, 2001                                              //
// Copyright (C) 2001 Christof Pohl <chripo+frontpage@edo.uni-dortmund.de> //
/////////////////////////////////////////////////////////////////////////////
// WorldWideWeb: http://home.edo.uni-dortmund.de/~chripo                   //
// FTP: ftp://ftp.edo.uni-dortmund.de/pub/mod_frontpage                    //
/////////////////////////////////////////////////////////////////////////////

This product includes software developed by the Apache Group for use in the
Apache HTTP server project (http://www.apache.org/).



WHAT YOU NEED
=============


Improved mod_frontpage
----------------------

That's what this is all about ... get it via FTP:

<ftp://ftp.edo.uni-dortmund.de/pub/mod_frontpage/mod_frontpage-1.5.1-1.3.17.tar.gz>

or HTTP:

<http://home.edo.uni-dortmund.de/~chripo/download/mod_frontpage-1.5.1-1.3.17.tar.gz>


The Apache HTTP Server sources
------------------------------

Of course. ;-) The Apache 1.3.17 sources are available via FTP at
<ftp://ftp.apache.de/pub/apache/apache_1.3.17.tar.gz> or HTTP
<http://www.apache.org/dist/apache_1.3.17.tar.gz>.


Microsoft FrontPage Server Extensions
-------------------------------------

You can download the Microsoft FrontPage Server Extensions SR 1.2 for UNIX
platforms at MSDN Online:

<http://msdn.microsoft.com/workshop/languages/fp/2000/unixfpse.asp>.

Get the compressed tar file named "fp40.platform.tar.Z", where platform is the
UNIX platform to which the FrontPage Server Extensions are being installed.
For example, "fp40.linux.tar.Z" is the compressed tar file for Linux servers.

You will not need to download Microsoft's installation scripts
("fp_install.sh" or "change_server.sh").


OpenSSL
-------

This is a cryptographic toolkit implementing the Secure Sockets Layer (SSL
v2/v3) and Transport Layer Security (TLS v1) protocols as well as a full-
strength general purpose cryptography library. It is needed for mod_ssl. Get it
via FTP at <ftp://ftp.openssl.org/source/openssl-0.9.6.tar.gz> or HTTP
<http://www.openssl.org/source/openssl-0.9.6.tar.gz>.


mod_ssl
-------

This module provides strong cryptography for the Apache 1.3 webserver via the
Secure Sockets Layer (SSL v2/v3) and Transport Layer Security (TLS v1)
protocols. Get it via FTP at
<ftp://ftp.modssl.org/source/mod_ssl-2.8.0-1.3.17.tar.gz> or HTTP
<http://www.modssl.org/source/mod_ssl-2.8.0-1.3.17.tar.gz>.


MM Shared Memory Library
------------------------

The MM library is a 2-layer abstraction library which simplifies the usage of
shared memory between forked (and this way strongly related) processes under
Unix platforms. Using MM will improve mod_ssl's performance. Get it via FTP at
<ftp://ftp.engelschall.com/sw/mm/mm-1.1.3.tar.gz> or HTTP
<http://www.engelschall.com/sw/mm/mm-1.1.3.tar.gz>.


PHP 3.0.16
----------

PHP is a server-side, cross-platform, HTML embedded scripting language. The
last PHP 3.0 release was 3.0.16. Get it via FTP at
<ftp://ftp.edo.uni-dortmund.de/pub/mod_frontpage/php-3.0.16.tar.gz> or HTTP
<http://www.php.net/distributions/php-3.0.16.tar.gz>.


PHP 4.0.4pl1
------------

PHP 4.0 offers drastic improvements in performance and scalability, features,
platform support and extendibility. It is downwards-compatible to nearly all
PHP 3.0 applications. Get it via FTP at
<ftp://ftp.edo.uni-dortmund.de/pub/mod_frontpage/php-4.0.4pl1.tar.gz> or HTTP
<http://www.php.net/distributions/php-4.0.4pl1.tar.gz>.


The GNU "patch" program
-----------------------

You will need a reasonabe up-to-date version of the GNU "patch" program
versions 2.5.1 or later are known to work). If you have an older version, you
can download the sources and compile them on your system.

Note that non-GNU versions of "patch" (like the "patch" program included in Sun
Solaris 6.x or 7.x) will NOT WORK!


Root access
-----------

To install the Apache HTTP Server with Improved mod_frontpage you must have
root access on the UNIX system!



NOTE FOR BSD USERS
==================

The BSD version of the "tar" command does not support the "z" option used
throughout in the following documents. Please gunzip the archives by hand
before running the "tar" commands (without the "z" option).



APACHE+FRONTAGE+SSL+PHP4+PHP3 QUICK INSTALL
===========================================

**** Introduction ****

This documentation will lead you through all the steps necessary for
configuring, building and installing all required packages for an Apache HTTP
Server with support for SSL, FrontPage and PHP (versions 4.x and 3.x).

Lines starting with "#" are example commands to be used in a bash shell. You
must follow ALL of the steps described here CLOSELY, or you will get strange
errors if you want to open your FrontPage extended web site in the FrontPage
client!

WARNING: This is for advanced users only.

If you have questions, encounter any errors, or want to get to know some
advanced tips and tricks, please read the INSTALL file! It contains a detailed
Step-By-Step Installation Guide!


Step 1: Install the FrontPage Server Extensions
-----------------------------------------------

Untar the FrontPage Server Extensions in "/usr/local/":

    # cd /usr/local
    # gzip -dc /path/to/downloaded/fp40.platform.tar.Z | tar xf -

This will create a new directory named "/usr/local/frontpage/" and some
subdirectories in it. It should be owned by user "bin" and group "bin". If
this is not the case, do a:

    # chown -R bin frontpage
    # chgrp -R bin frontpage

If you get "invalid user" or "invalid group", take a look at the detailed
Installation Guide in the INSTALL file.



Step 2: Set up your building environment
----------------------------------------

Remove an existing Apache source tree in "/usr/src", if present:

    # cd /usr/src
    # rm -Rf apache_1.3.17

Then untar all packages in "/usr/src/":

    # cd /usr/src
    # gzip -dc /path/to/downloaded/apache_1.3.17.tar.gz | tar xf -
    # gzip -dc /path/to/downloaded/mod_frontpage-1.5.1-1.3.17.tar.gz | tar xf -
    # gzip -dc /path/to/downloaded/openssl-0.9.6.tar.gz | tar xf -
    # gzip -dc /path/to/downloaded/mod_ssl-2.8.0-1.3.17.tar.gz | tar xf -
    # gzip -dc /path/to/downloaded/mm-1.1.3.tar.gz | tar xf -
    # gzip -dc /path/to/downloaded/php-3.0.16.tar.gz | tar xf -
    # gzip -dc /path/to/downloaded/php-4.0.4pl1.tar.gz | tar xf -


Step 3: Configure and build OpenSSL library
-------------------------------------------

Change into the OpenSSL source directory:

    # cd openssl-0.9.6/

If you are citizen of a European state, configure OpenSSL by executing:

    # ./config no-idea -fPIC

Everyone else configures OpenSSL with:

    # ./config -fPIC

Notice: Make sure you really use "-fPIC" and not "-fpic". The latter will
        usually cause the build to fail.

For more configure options on OpenSSL, read its documentation.

To compile and test OpenSSL, do:

    # make
    # make test

The "make test" command should not report any errors.


Step 4: Configure, build and test the MM Shared Memory Library
--------------------------------------------------------------

Change into the MM source directory:

    # cd ../mm-1.1.3/

Configure MM:

    # ./configure --disable-shared

To compile and test MM, do:

    # make
    # make test

For more configure options on the MM Shared Memory Library, read its
documentation.


Step 5: Apply mod_ssl to the Apache HTTP Server sources
-------------------------------------------------------

Change into the mod_ssl source directory:

    # cd ../mod_ssl-2.8.0-1.3.17

The following command applies mod_ssl to the Apache sources:

    # ./configure --with-apache=../apache_1.3.17

For more configure options on mod_ssl, read its documentation.


Step 6: Apply Improved mod_frontpage to the Apache HTTP Server sources
----------------------------------------------------------------------

Change into the Apache source directory:

    # cd ../apache_1.3.17

Apply the patch included in this distribution of Improved mod_frontpage:

    # patch -p0 < ../mod_frontpage-1.5.1-1.3.17/patch-1.5.1-1.3.17

You can safely ignore reports about succeeded hunks with some fuzz
and/or offset.

If you get any errors, make sure your version of the patch program is 2.5.1 or
later (see Step-By-Step Installation Guide in file "INSTALL" for more
information).


Step 7: Configure Apache
------------------------

Configure Apache using the "configure" script:

    # SSL_BASE=../openssl-0.9.6 \
    # EAPI_MM=../mm-1.1.3 \
    # ./configure \
    # --prefix=/install/path/of/apache \
    # --enable-module=ssl \
    # --enable-module=frontpage \
    # --server-uid=nobody
    # --fpexec-caller=nobody \

On RedHat Linux only, you must use two additional switches to the above
"configure" command:

    --fpexec-uidmin=99
    --fpexec-gidmin=99

If you want to build mod_frontpage and/or mod_ssl as shared module(s) (DSO), add
"--enable-shared=frontpage" and/or "--enable-shared=ssl" to your "./confiugre"
command. You may want to add other configure switches (such as
"--enable-module=most") as well.

Have a look at the Step-By-Step Installation Guide in file "INSTALL" for a
complete description of all the configure switches available for Improved
mod_frontpage.


Step 8: Compile and install Apache
----------------------------------

To compile Apache, do:

    # make

In order to use SSL, you will need to create a certificate for your webserver.
If you want to create a dummy certificate, do:

    # make certificate

For real life production servers, do:

    # make certificate TYPE=custom

Refer to mod_ssl's documentation for more information about the "make
certificate" command and its options.

To install Apache, do:

    # make install

Edit the "httpd.conf" file in your favorite text editor:

    # vi /install/path/of/apache/conf/httpd.conf

Find the "<Directory>" directive for the path specified in the "DocumentRoot"
directive:

    <Directory "/install/path/of/apache/htdocs">

You must change the "AllowOverride" directive a few lines below from "None" to
"All".


Step 9: Configure, compile, install and enable PHP3
---------------------------------------------------

Change into the PHP 3.0 source directory:

    # cd ../php-3.0.16

To configure PHP 3.0, do:

    # EAPI_MM=../mm-1.1.3 \
    # ./configure \
    # --with-apxs=/install/path/of/apache/bin/apxs \
    # --with-config-file-path=/usr/local/lib \
    # --enable-versioning

You may want to add other configue switches as well.

Compile and install PHP 3.0:

    # make
    # make install

Notice: At the beginning of the compilation, it seems the make process has died
        (there are no more outputs). Please be patient, it just takes some time.

Copy the PHP 3.0 config file to "/usr/local/lib":

    # cp php3.ini-dist /usr/local/lib/php3.ini

Edit Apache's "httpd.conf" configuration file in your favorite text editor:

    # vi /path/to/installed/apache/conf/httpd.conf

Find the following directive...

    #AddType application/x-httpd-php3 .php3

...and remove the "#" in front of it to enable PHP3.


Step 10: Configure, compile, install and enable PHP4
----------------------------------------------------

Change into the PHP 4.0 source directory:

    # cd ../php-4.0.4pl1

To configure PHP 4.0, do:

    # EAPI_MM=../mm-1.1.3 \
    # ./configure \
    # --with-apxs=/install/path/of/apache/bin/apxs \
    # --with-config-file-path=/usr/local/lib \
    # --enable-versioning

You may want to add other configue switches as well.

Compile and install PHP 4.0:

    # make
    # make install

Copy the PHP 4.0 config file to "/usr/local/lib":

    # cp php.ini-dist /usr/local/lib/php.ini

Edit Apache's "httpd.conf" configuration file in your favorite text editor:

    # vi /install/path/of/apache/conf/httpd.conf

Find the following directives...

    #AddType application/x-httpd-php .php
    #AddType application/x-httpd-php-source .phps

...and remove the "#" in front of them to enable PHP4.


Step 11: Start the Apache HTTP Server
-------------------------------------

Simply do a:

    # /install/path/of/apache/bin/apachectl start

Have a look at the "error_log" file:

    # tail /install/path/of/apache/logs/error_log

You should find something like:

    [Mon Oct 16 20:16:52 2000] [notice] Apache/1.3.17 (Unix)
    mod_ssl/2.8.0 OpenSSL/0.9.6 PHP/4.0.4pl1 PHP/3.0.16 FrontPage/4.0.4.3
    configured -- resuming normal operations

Please note that the term "FrontPage/4.0.4.3" is included. This means Improved
mod_frontpage was loaded correctly.


Step 12: Install the FrontPage Server Extensions to your server's root web
--------------------------------------------------------------------------

Use the "fpsrvadm.exe" utility, which is part of the FrontPage Server
Extensions, to install the FrontPage Server Extensions to the root web on your
new Apache HTTP Server:

    # /usr/local/frontpage/version4.0/bin/fpsrvadm.exe

Choose the following options when prompted:

  Please enter command:            1) install

  Please enter server type:        1) apache-fp

  Enter server config filename:    /path/to/installed/apache/conf/httpd.conf

  Enter host name for multi-hosting []: <ENTER>

  Enter UNIX username []:          nobody

  Enter UNIX group []:             nogroup

  User name to add to FrontPage group "administrators" [administrator]: fpadm

  Password for user "test":        test (you will see nothing)

  Confirm password:                test (you will see nothing)

Apache's root web will be extended to use the FrontPage Server Extensions with
this command.


Step 13: Try to open the FrontPage web with the FrontPage client
----------------------------------------------------------------

When prompted, use the FrontPage account that was created during the
installation of the FrontPage web (in the above example this was user "fpadm"
with password "test"). You should be able to create new FrontPage subwebs and
FrontPage accounts with the FrontPage client now.


Step 14: Sekt oder Selters
--------------------------

If everything works now, you might want to give a party or drink some beer or
something. ;-) If not, head over to the Step-By-Step Installation Guide
contained in the INSTALL file and try to figure out what went wrong.

If you have any suggestions concerning Improved mod_frontpage, this
documentation or the Improved mod_frontpage website, please drop me a line
<chripo+frontpage@edo.uni-dortmund.de>.

Thank you,

Christof Pohl


