如何为带有调试、TS的PHP 5.3.6编译PHP扩展

7

我尝试创建一些PHP扩展。

首先,我使用--enable-debug --enable-maintainer-zts编译了php 5.3.6。 然后,我创建了我的扩展并按照标准程序使用它。

phpize
./configure --with-EXTNAME
make

extname.so复制到我的php扩展目录中,并更改php.ini

当我尝试使用cli的php时,我遇到了一个错误

Unable to initialize module
Module compiled with build ID=API20090626,NTS
PHP    compiled with build ID=API20090626,TS,debug

当我尝试时

./configure --enable-debug --enable-maintainer-zts

我得到了一个警告,configure脚本不认识这些选项,这是关于扩展的。

那么,我该如何编译我的扩展,以便与使用我上述描述的选项编译的PHP一起使用,而无需重新编译PHP本身?

2个回答

7
你需要运行./configure --with-php-config=/path/to/correct/php-config命令。
这个配置脚本很可能使用另一个php-config(很可能是中心安装的)。

哦...那么在哪里可以找到正确的php-config呢? 我猜它应该在bin目录中的php附近,我是对的吗? - krasilich

1
在我的服务器中有2个phpize。
  /usr/bin/php/phpize
  /usr/bin/php-zts/phpize

为确保编译时启用线程安全而不使用 "phpize",请执行以下操作。
/usr/bin/php-zts/phpize
./configure --with-php-config=/usr/bin/php-zts/php-config
make
make install 

注意仅选择正确的phpize是不够的:还需要--with-php-config。 - Dereckson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接