Mac上的PHP扩展

时间:2009-02-17 16:12:02

标签: php apache macos php-extension

我写了一个PHP扩展,我试图让它在Mac的Apache服务器上运行。

它通过命令行运行良好,例如:

$ php -r 'dl("mylib.dylib");

我也尝试过从源代码构建Apache,当我运行它时它运行得很好(我将它设置为使用与Mac的内置Apache相同的PHP,所以没有区别)。

但是,当我使用默认的Apache加载我的扩展时,你可以使用系统偏好设置 - >网络共享,或者等效地,在sbin中使用apachectl,它说:

Warning: dl() [function.dl]: Unable to load dynamic library '/usr/lib/php/extensions/mylib.dylib' - (null) in /Users/myuname/Sites/test.php on line 6

Mac的Apache是​​否有些奇怪的东西或我必须设置的一些权限?

2 个答案:

答案 0 :(得分:2)

这听起来像是由架构差异引起的那种错误。尝试执行file /usr/lib/php/extensions/mylib.dylib并查看二进制文件中包含哪些体系结构。 IIRC,Apache在Leopard上以64位运行,因此您需要确保您的库包含64位版本的代码,无论您运行哪个处理器(ppc64或x86-64)。

答案 1 :(得分:0)

事实上,这可能是64位的东西在咬你的屁股。在编译扩展时尝试将'-arch x86_64'传递给gcc。