我写了一个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是否有些奇怪的东西或我必须设置的一些权限?
答案 0 :(得分:2)
这听起来像是由架构差异引起的那种错误。尝试执行file /usr/lib/php/extensions/mylib.dylib
并查看二进制文件中包含哪些体系结构。 IIRC,Apache在Leopard上以64位运行,因此您需要确保您的库包含64位版本的代码,无论您运行哪个处理器(ppc64或x86-64)。
答案 1 :(得分:0)
事实上,这可能是64位的东西在咬你的屁股。在编译扩展时尝试将'-arch x86_64'传递给gcc。