PHP Extension Compile

Created by: Lester Caine, Last modification: Fri 03 of Jun, 2011 (00:11 BST)

Installing additional packages to a PHP configuration

We need the following development packages to complete the compilation process
gcc
make
autoconf
automake
libtool
m4
php5-devel

In addition the following additional packages packages are needed to compile some of the extensions
firebird-devel (firebird/interbase)
libbz2-devel (MagickWand)
ImageMagick-devel (MagickWand)

Process

The procedure for building the extension is quite simple once all of the tools are in place. The source code for the extension is copied to a working location, and I use {home}/Install/{ext name} as a convenient point. Then one opens a command prompt and navigate to that directory. From the command line you run 4 steps which hopefully will complete without error.

phpize
./configure
make
make install

See also the PHP manual page for this process.

In order to enable the new libery file, add  extension={ext name}.so to your 'php.ini' initialization file.
But for the SUSE configuration of Apache and PHP the php.ini file is segmented quite sensibly, and extensions have their own .ini files in the /etc/php5/conf.d folder. For simple extensions this only has the extension package line, but more complex extensions have all of their related settings managed here. The managed packages all have a comment about commenting out the extension line, but I prefer to simple add '.off' to hide the ini file and make it easy to spot when things are disabled.

Private extensions

MagickWand interface to ImageMagic graphics library.

eAccelerator PHP accelerator & optimizer

Firebird also available as interbase extension  from some distribution repository but I'm planning to re-work this to a proper firebird.so

Watch this space ...