Compiling shared PECL extensions with phpize
Sometimes, using the pecl installer is not an option.
This could be because there is a firewall or because the extension being
installed is unavailable as a PECL-compatible package, such as unreleased
extensions from git.
If such an extension needs to be built, the lower-level build tools can be
used to perform the build manually.
The phpize command is used to prepare the build
environment for a PHP extension.
In the following sample, the sources for an extension are in a directory
named extname:
$ cd extname
$ phpize
$ ./configure
$ make
# make install
A successful install will have created extname.so and
put it into the PHP
extensions directory.
The php.ini will need to be adjusted, and an
extension=extname.so
line will need to be added before the extension can be used.
If the system is missing the phpize command, and
precompiled packages (like RPM's) are used, be sure to install also the
appropriate development version of the PHP package as they often include the
phpize
command along with the proper header files to build PHP and its extensions.
Execute phpize --help to display additional usage
information.
Brian ¶17 years ago
If you have multiple PHP versions installed, you may be able to specify for which installation you'd like to build by using the --with-php-config option during configuration.--with-php-config=[Insert path to proper php-config here]For example (my case):./configure --with-php-config=/usr/local/php5/bin/php-config5
admin at eexit dot net ¶13 years ago
When compiling an extension for a stack which is 64 bits (for example) and your compiler is configured to compile in 32 bits, you can manually compile your extensions using C flags before your configure.Example: my system compiler is 32 bits and my stack is 64 bits. To compile my xdebug:# phpize# CFLAGS=-m64 CPPFLAGS=-m64 CCASFLAGS=-m64 ./configure --enable-xdebug# gmake# file modules/xdebug.somodules/xdebug.so: ELF 64-bit LSB dynamic lib AMD64 Version 1, dynamically linked, not stripped, no debugging information available