phpize:仅在一个扩展中出现 m4 错误

phpize:仅在一个扩展中出现 m4 错误

在 Linux 上,我从源代码安装了 php 5.3.8。使用 phpize 安装扩展可以正常工作,但对于某个特定扩展 (mysqlnd) 则不行。

# cd /opt/php/5.3.8/ext/pdo && /opt/php/5.3.8/bin/phpize
... this runs ok
# cd /opt/php/5.3.8/ext/mysqlnd && /opt/php/5.3.8/bin/phpize
Cannot find config.m4. 
Make sure that you run '/opt/php/5.3.8/bin/phpize' in the top level source directory of the module`

正如您所见,错误不可能是由于我不在顶层源目录中,因为我确实在。我尝试从 ext 文件夹调用 phpize - 也没有成功!我已安装 m4

有什么想法吗?谢谢 :)

答案1

问题是 mysqlnd 的 m4 文件不是,config.m4而是 config9.m4。这是一种依赖机制,以确保buildconf将其放在 configure 的末尾。有人可能会说phpize应该知道这一点,但目前还不知道。

一种解决方法是将 config9.m4 重命名为 config.m4,但请注意,这样“正常”构建将无法进行。

还请注意,PHP 5.3.8 不允许mysqlnd共享构建,因此上述解决方法不起作用。不过,这在 PHP 5.3.9 中是允许的。这仍然不能解决 config.m4 与 config9.m4 的问题,但对于 PHP,您将能够将其作为主要 PHP 构建的一部分--enable-mysqlnd=shared接收。mysqlnd.so

答案2

尝试从 mysql 文件夹运行 phpize

您可以在此处查看同一篇文章:http://kmaiti.blogspot.com/2010/08/cannot-find-configm4-phpize-resolved.html

相关内容