This will extract the latest versions of everything into the tree starting
./php/php3/. The command will display lots of information about
what it’s doing, which can be ignored (except for error messages, of course!).
In order to keep in sync with the latest changes being made to the master
repository, just repeat the last two commands every few days.
Since this method involves grabbing the sources themselves rather than a
prepared package, take at least this one extra step before you build: run
autoconf in order to generate the
./php/php3/configure script. This is simple:
% cd ./php/php3/ % ./buildconf % autoconf
and you’re ready to build.
To follow this path, subscribe to the
php-dev mailing list to
keep up to date with changes (like the addition of the
step above, which is quite recent—and necessary; PHP won’t build without
it!). Find out more about the PHP mailing lists at
The PHP package is just brimful of capabilities that you can enable if you
have the appropriate extra pieces installed on your system. For instance, one
of PHP’s strong points is its simple and easy interface to numerous different
database system such as Oracle, MySQL, mSQL, DB2, and so on.
You enable these extensions by letting the
script know about them when you invoke it. For example, if you want to be able
to use MySQL and XML within your PHP scripts (or PHP pages), you might invoke
% ./configure --with-mysql --with-xml
To see a list of the extensions that PHP can support, invoke the script as
% ./configure --help
Building PHP for CGI Use
Like Perl, PHP can be used in standalone scripts as well as embedded in Web
pages. Unfortunately, to do both you will need to build it twice: once for each
type of use. (Version 4 of PHP supposedly allows a single build to provide both
the standalone script engine and the Apache module.)
Building the PHP script interpreter is very simple:% cd ./php/php3/ % rm -f config.status config.cache % make clean % ./configure --enable-discard-path other-options % make % make install
make installstep requires write
access to the
/usr/local/bindirectory, so you may need to
execute it as
--enable-discard-pathswitch on the
./configureinvocation is necessary to use PHP scripts as CGI
scripts under a Web server, such as in the
just invoke PHP scripts directly from shell command lines, you can omit it. Of
course, it does no harm to include it, so you might as well.
Building PHP as an Apache Module
To use embedded PHP code in Web pages, build it in one of two different
ways, depending upon whether it is to be loaded dynamically or built
permanently into the Apache server. The only difference between the interpreter
and dynamic module builds is the
configurecommand; the sequence
for building it as a static module is considerably more complex.
In order to allow Apache to recognise PHP-enabled HTML files as being grist
mod_php's mill requires a line like the following in the
/usr/local/web/apache/conf/httpd.conffile:AddType application/x-httpd-php3 .php3
Then the Web server will know to invoke the PHP module to process the file.
Linking it Statically