mod_php and its prerequisites

What is mod_php

Quoting www.php.net

PHP is a server-side, cross-platform, HTML embedded scripting language.

In the beginning it was just a simple guestbook-processor, and it was growing and growing Since Version 3 it is really powerful Webdevelopment-language

From the authors point of view:

Since Version 4 PHP capable and robust enough for enterprise webapplications. It is powerful, supports almost all important Databases natively, and other through ODBC. It a few times faster than ASP on M$-Systems on the same Hardware.

There are other extensions available like apc which speed up processing about 50-400% (depends on the php-code you wrote)

Prerequisites

Depending on your needs there are some software to install first. One already installed Software according this document is MySQL, because its needed by mod_auth_mysql.

IMAP client

What is IMAP client

IMAP means "Internet Mail Application Protocol" and is a substitute for the POP protocol. It allows to keep all Mails in different folders on the server, which (should) be backed up - Never again lose important email, because your local harddrive crashed

Building and installing


cd /usr/local

tar -xvfz imap.tar.Z

cd imap

make slx SSLTYPE=unix



Notice:

imap.tar.Z is usually a symlink to the latest release, today its linked to imap-2001a.tar.Z

If you don't need SSL-Support, remove the "SSLTYPE=unix" behind the make command

PostgreSQL

What is PostgreSQL

PostgreSQL is a very Powerful and fast Database

Like MySQL wonderful for Webapplications. From my Point of view, not as comfortable to handle as MySQL. If your Webapplication performs mostly writes, or you need proofed transaction-capabilities, PostgreSQL is your friend

Download the source

Origin-Site: http://www.postgresql.org (Select a mirror close to you)

Building and installing


cd /usr/local

tar -xvzf postgresql-7.2.1.tar.gz

cd postgresql-7.2.1

./configure \
--with-perl \
--enable-odbc \
--with-unixodbc  \
--with-pam \
--with-openssl \


make
make install

echo /usr/local/pgsql/lib >> /etc/ld.so.conf

ldconfig

pdflib

What is pdflib

Quoting www.pdflib.com

PDFlib: A library for generating PDF on the fly PDFlib is the premier software component if you want to generate PDF on your server, convert text and graphics, or implement PDF output in your own products.

From the authors point of view:

This is a commercial Product. Read the license carefully to see if you need a commercial license or not

Building and installing


cd /usr/local/
tar -xvzf pdflib-4.0.2.tar.gz

cd pdflib-4.0.2

./configure --enable-shared-pdflib --enable-cxx

make
make install

ldconfig

gettext

What is gettext

gettext is a library for i18n (Internationalization, "I", 18 chars and "n") of software, and needed by php

Download the source

Origin-Site: ftp://ftp.gnu.org/gnu/gettext (select a mirror close to you)

Building and installing


cd /usr/local

tar -xvzf gettext-0.11.1.tar.gz

cd gettext-0.11.1

./configure

make
make check
make install

ldconfig

zlib

What is zlib

zlib is a lossless data-compression library for use on virtually any computer hardware and operating system

Building and installing


cd /usr/local

tar -xvzf zlib-1.1.4.tar.gz

cd zlib-1.1.4/

./configure

make
make test
make install

ldconfig

Building and installing PHP4


cd /usr/local

tar -xvzf php-4.1.2.tar.gz

cd php-4.1.2


./configure \
--with-apxs=/usr/local/apache/bin/apxs \
--with-mysql=/usr/local/mysql \
--with-pgsql=/usr/local/pgsql \
--enable-track-vars \
--with-openssl=/usr/local/ssl \
--with-imap=/usr/local/imap-2001a \
--with-gd --with-ldap \
--enable-ftp \
--enable-sysvsem \
--enable-sysvshm \
--enable-sockets \
--with-pdflib=/usr/local \
--with-gettext \
--with-mm=/usr/local/mm-1.1.3 \
--with-jpeg-dir=/usr/lib \
--with-zlib-dir=/usr/local \

make
make install

After installing your httpd.conf is modified by axps. It should now look as follows:


<IfDefine SSL>
LoadModule ssl_module         libexec/libssl.so
LoadModule php4_module        libexec/libphp4.so
</IfDefine>

If you compiled Apache with mod_ssl then the php-module will only be loaded when staring Apache with ssl (apachectl startssl). If you will start Apache without ssl support (but compiled like described in this document) you need to change this:


<IfDefine SSL>
LoadModule ssl_module         libexec/libssl.so
</IfDefine>
LoadModule php4_module        libexec/libphp4.so

Copy the sample php.ini to /usr/local/lib/php.ini


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

uncomment (remove the # at begin of line) the following lines in /usr/local/apache/conf/httpd.conf

Apache 1.3.24 default httpd.conf does lack of this entries. You have to add them instead of uncommenting


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

you may wish to add the following:


AddType application/x-httpd-php .phtml
AddType application/x-httpd-php .php3

Restart apache by issuing the following command:


/usr/local/apache/bin/apachectl restart