Details
of installing PHP with apache on Unix.
You can select arguments to add to the configure on line 8 below from the
Complete list of configure options.
Example 2-4. Installation Instructions (Apache Module Version)
1. gunzip apache_1.3.x.tar.gz
2. tar xvf apache_1.3.x.tar
3. gunzip php-x.x.x.tar.gz
4. tar xvf php-x.x.x.tar
5. cd apache_1.3.x
6. ./configure --prefix=/www
7. cd ../php-x.x.x
8. ./configure --with-mysql
--with-apache=../apache_1.3.x --enable-track-vars
9. make
10. make install
11. cd ../apache_1.3.x
12. for PHP 3: ./configure --activate-module=src/modules/php3/libphp3.a
for PHP 4: ./configure --activate-module=src/modules/php4/libphp4.a
13. make
14. make install
Instead of this step you may prefer to simply copy the httpd
binary
overtop of your existing binary. Make sure you shut down your
server first though.
15. cd ../php-x.x.x
16. for PHP 3: cp php3.ini-dist /usr/local/lib/php3.ini
for PHP 4: cp php.ini-dist /usr/local/lib/php.ini
You can edit your .ini file to set PHP options. If
you prefer this file in another location, use
--with-config-file-path=/path in step 8.
17. Edit your httpd.conf or srm.conf
file and add:
For PHP 3: AddType application/x-httpd-php3 .php3
For PHP 4: AddType application/x-httpd-php
.php
You can choose any extension you wish here. .php is
simply the one
we suggest. You can even include .html .
18. Use your normal procedure for starting the Apache server. (You must
stop and restart the server, not just cause the server to reload by
use a HUP or USR1 signal.)
Different examples of compiling PHP for apache are as follows:
./configure --with-apxs --with-pgsql
This will create a libphp4.so shared library that is loaded into Apache using a
LoadModule line in Apache's httpd.conf
file. The PostgreSQL support is embedded into this
libphp4.so library.
./configure --with-apxs --with-pgsql=shared
This will again create a libphp4.so shared library for Apache, but it will also
create a pgsql.so shared library that is loaded into
PHP either by using the extension directive in php.ini file or by loading it
explicitly in a script using the dl() function.
./configure --with-apache=/path/to/apache_source
--with-pgsql
This will create a libmodphp4.a library, a mod_php4.c and some accompanying
files and copy this into the src/modules/php4 directory in the Apache source
tree. Then you compile Apache using
--activate-module=src/modules/php4/libphp4.a and the Apache build system will
create libphp4.a and link it statically into the httpd
binary. The PostgreSQL support is included directly
into this httpd binary, so the final result here is a
single httpd binary that includes all of Apache and
all of PHP.
./configure --with-apache=/path/to/apache_source
--with-pgsql=shared
Same as before, except instead of including PostgreSQL
support directly into the final httpd you will get a pgsql.so shared library that you can load into PHP from
either the php.ini file or directly using dl().
When choosing to build PHP in different ways, you should consider the
advantages and drawbacks of each method. Building as a shared object will mean
that you can compile apache separately, and don't have to recompile everything
as you add to, or change, PHP. Building PHP into apache (static method) means
that PHP will load and run faster. For more information, see the Apache webpage
on DSO support.