PHP Conference Ehime 2026

Compiling PECL extensions statically into PHP

Warning

PECL is deprecated. PHP Installer for Extensions (PIE) replaces PECL and is recommended to install extensions. Find out more at » https://github.com/php/pie

It may be necessary to build a PECL extension statically into the PHP binary. To do this, the extension source will need to be placed under the /path/to/php/src/dir/ext/ directory, and the PHP build system will be required to regenerate its configure script.

$ cd /path/to/php/src/dir/ext
$ pecl download extname
$ gzip -d < extname.tgz | tar -xvf -
$ mv extname-x.x.x extname

This will result in the following directory:

/path/to/php/src/dir/ext/extname

From here, PHP needs to be forced to rebuild the configure script, and then it can be built as normal:

$ cd /path/to/php/src/dir
$ rm configure
$ ./buildconf --force
$ ./configure --help
$ ./configure --with-extname --enable-someotherext --with-foobar
$ make
$ make install

Note:

To run the buildconf script, the autoconf 2.68 and automake 1.4+ will be needed. Newer versions of autoconf may work but are not supported.

Whether --enable-extname or --with-extname is used depends on the extension. Typically, an extension that does not require external libraries uses --enable. To be sure, run the following after buildconf:

$ ./configure --help | grep extname
add a note

User Contributed Notes 1 note

up
1
anthon at piwik dot org
14 years ago
Some extensions cannot be statically linked (e.g., xdebug).
To Top