Linux Apache SSL PHP/FI frontpage mini-HOWTO: Component installation

Next Previous Contents

## 2. Component installation

## 2.1 Preparations

You will need:

- Apache 1.2.6 http://www.apache.org/dist/apache_1_2_6.tar.gz
- PHP/FI Extensions http://php.iquest.net/files/download.phtml?/files/php-2.01.tar.gz
- GD Library http://siva.cshl.org/gd/gd.html
- SSL 0.8.0 ftp://ftp.ox.ac.uk/pub/crypto/SSL/SSLeay-0.8.0.tar.gz
- SSL patch for Apache 1.2.6 ftp://ftp.ox.ac.uk/pub/crypto/SSL/apache_1.2.6+ssl_1.17.tar.gz
- frontpage 98 server extensions and install script http://www.rtr.com/fpsupport/download.htm

Get the sources you want. Untar apche, php, gd and ssl to `/usr/src`. Untar the SSL patch to `/usr/src/apache_1.2.6`.

## 2.2 Adding PHP

`cd` to /usr/src/gd1.2 and type make. This will build the GD library `libgd.a`, that should be copied to `/usr/lib`. Now `cd` to `php-2.0.1` and run `./install`.

The relevant questions are:

    Would you like to compile PHP/FI as an Apache module? [yN] y
    Are you compiling for an Apache 1.1 or later server? [Yn] y
    Are you using Apache-Stronghold? [yN] y
    Does your Apache server support ELF dynamic loading? [yN] y
    Apache include directory (which has httpd.h)? [/usr/local/include/apache] /usr/src/apache_1.2.6/src
    Would you like to build an ELF shared library? [yN] y
    Additional directories to search for .h files []: /usr/src/gd1.2
    Would you like the bundled regex library? [yN] n

Like the frontpage extensions, phtml includes a security problem because it is run under the uid of the webserver. Be sure to turn on safe mode in src/php.h and restrict the search path to a save value. There are some other options in php.h you may want to edit. If you are very concerned about security, compile php as a cgi. However, this will be a performance loss and not as smart as the module version.

Type `make` to build all files. When the compilation is done, copy `mod_php.*` and `libphp.a` to `/usr/src/apache_1.2.6/src` Add a line

    Module php_module mod_php.o

to the end of `/usr/src/apache_1.2.6/src/Configuration`, add

    -lphp -lm -lgdbm -lgd

to the `EXTRA_LIBS` in the same file,

    application/x-httpd-php phtml

to Apache's `mime.types` and

    AddType  application/x-httpd-php .phtml

to Apache's `srm.conf`.

You may also want to add `index.phtml` to `DirectoryIndex` in that file so that a file index.phtml is automatically loaded when its directory is requested.

## 2.3 Adding SSL

`cd /usr/src/SSL-0.8.0; ./Configure linux-elf; make; make rehash` This will create libraries needed by apache. You may issue `make test` to verify the compilation. You have to apply a patch to apache. It is important that you apply it before the frontpage patch, otherwise frontpage will not work. `cd` to `/usr/src/apache_1.2.6/src` and issue `patch < /usr/src/apache_1.2.6/SSLpatch`. Set `SSL_BASE=/usr/src/SSLeay-0.8.0` in `Configuration`. Make sure that `Module proxy_module` is disabled otherwise Apache won't compile. If you are in need of a proxy, go for Squid http://squid.nlanr.net/

Now `make certificate` to generate `SSLconf/conf/httpsd.pem`.

## 2.4 Adding frontpage

Rename the `fp30.linux.tar.Z` file to `fp30.linux.tar.gz`, otherwise the install script will not find it. Run `./fp_install` to copy the extension files to `/usr/local/frontpage`. zcat can usually be invoked as /usr/bin/zcat.

You now have to apply the FP patch. `cd` to `/usr/src/apache_1.2.6/src` and type `patch < /usr/src/frontpage/version3.0/apache-fp/fp-patch-apache_1.2.5` This will create the `mod_frontpage.*` files and do some modifications to `Configuration` etc. The 1.2.5 patch will work with both apache 1.2.5 and 1.2.6. Skip the part about installing webs, you can do that later

Next Previous Contents