PHP Conference Japan 2024

使用 phpize 编译共享 PECL 扩展

有时,使用 pecl 安装程序不是一种选择。这可能是因为存在防火墙,或者因为要安装的扩展不可作为与 PECL 兼容的软件包使用,例如来自 git 的未发布扩展。如果需要构建此类扩展,则可以使用较低级别的构建工具手动执行构建。

phpize 命令用于为 PHP 扩展准备构建环境。在以下示例中,扩展的源代码位于名为 extname 的目录中。

$ cd extname
$ phpize
$ ./configure
$ make
# make install

成功安装后将创建 extname.so 并将其放入 PHP 的 扩展目录。需要调整 php.ini,并且需要添加 extension=extname.so 行,然后才能使用该扩展。

如果系统缺少 phpize 命令,并且使用了预编译的软件包(如 RPM),请确保也安装了 PHP 软件包的相应开发版本,因为它们通常包含 phpize 命令以及构建 PHP 及其扩展所需的适当头文件。

执行 phpize --help 以显示其他用法信息。

添加注释

用户贡献的注释 2 条注释

Brian
16 年前
如果您安装了多个 PHP 版本,则可以使用配置期间的 --with-php-config 选项指定要为哪个安装构建。

--with-php-config=[在此处插入正确的 php-config 路径]

例如(我的情况)
./configure --with-php-config=/usr/local/php5/bin/php-config5
admin at eexit dot net
12 年前
当为 64 位(例如)的堆栈编译扩展,并且您的编译器配置为以 32 位编译时,您可以在配置之前使用 C 标记手动编译扩展。

示例:我的系统编译器是 32 位,我的堆栈是 64 位。要编译我的 xdebug

# phpize
# CFLAGS=-m64 CPPFLAGS=-m64 CCASFLAGS=-m64 ./configure --enable-xdebug
# gmake
# file modules/xdebug.so
modules/xdebug.so: ELF 64-bit LSB dynamic lib AMD64 Version 1, dynamically linked, not stripped, no debugging information available
To Top