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 autoconf 2.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

add a note add a note

User Contributed Notes 1 note

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