2024年PHP日本会议

静态编译PECL扩展到PHP

可能需要将PECL扩展静态编译到PHP二进制文件中。为此,需要将扩展源代码放在/path/to/php/src/dir/ext/目录下,并且需要PHP构建系统重新生成其configure脚本。

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

这将生成以下目录

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

从这里,需要强制PHP重新构建configure脚本,然后就可以像往常一样构建了

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

注意要运行buildconf脚本,需要autoconf 2.68automake 1.4+。较新的autoconf版本可能有效,但不支持。

使用--enable-extname还是--with-extname取决于扩展。通常,不需要外部库的扩展使用--enable。为确保,在buildconf之后运行以下命令:

$ ./configure --help | grep extname
添加注释

用户贡献的注释 1 个注释

anthon at piwik dot org
12年前
某些扩展无法静态链接(例如,xdebug)。
To Top