PECL-Erweiterungen statisch in PHP kompilieren

In manchen Fällen kann es nötig sein, eine PECL-Erweiterung statisch in das PHP-Binary zu kompilieren. Dazu muss der Quellcode der Erweiterung in das Verzeichnis /pfad/zu/php/src/ einfügt werden und das PHP-Build-System angewiesen werden, sein configure-Skript neu zu erstellen.

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

Dadurch wird das folgende Verzeichnis erstellt:


/pfad/zu/php/src/ext/extname

An dieser Stelle muss PHP veranlasst werden, das configure-Skript neu zu erstellen, und anschließend kann PHP gebaut werden wie gewohnt:


$ cd /pfad/zu/php/src/
$ rm configure
$ ./buildconf --force
$ ./configure --help
$ ./configure --with-extname --enable-someotherext --with-foobar
$ make
$ make install

Hinweis: Um das Skript buildconf auszuführen, werden autoconf2.68 und automake benötigt. Neuere Versionen von autoconf könnten funktionieren, werden aber nicht unterstützt.

Ob --enable-extname oder --with-extname verwendet wird, hängt von der Erweiterung ab. Bei einer Erweiterung, die keine externen Bibliotheken benötigt, wird in der Regel --enable verwendet. Um sicher zu sein, kann nach buildconf folgender Befehl ausgeführt werden:


$ ./configure --help | grep extname
To Top