【发布时间】:2010-08-11 16:54:31
【问题描述】:
我正在用 PHP 编写一个自定义扩展并将扩展加载到 php.ini 文件中。使用命令行界面时,扩展加载并运行良好,但它不会加载到 Web 服务器(带有 FastCGI 的 Cherokee)中。为了在被问到之前阻止一些问题,我肯定使用了正确的 php.ini 文件,并且我已经正确设置了 extension_dir 的值。即使我指定了加载扩展的完整路径,它也不起作用。
所以我想知道我可以做些什么来解决这个问题。我怀疑这可能是由于外部依赖,因为在我将它链接到几个共享库之前,扩展加载得很好。但是,我在 /var/log/cherokee/cherokee.error 中没有看到任何问题的迹象。关于如何确定问题的任何其他想法?
【问题讨论】:
-
尝试为其他扩展名之一移动或重命名其中一个 .so 文件。那你看到错误了吗?如果不是,则错误日志记录出现问题。另外,您使用的是哪个版本的 PHP?您可能希望考虑升级到 5.3.3,其中包括漂亮的“FPM”FastCGI 实现。关于共享库,您是否确保它们位于可找到的位置?我认为有问题的环境变量是
LD_LIBRARY_PATH什么的...... -
您的意思是日志中没有错误提示无法加载扩展程序?
-
没有错误,但我意识到这是因为在php.ini中没有设置error_log。将其设置为 syslog 后,我现在看到扩展没有加载,因为它是 32 位的,而 PHP 和 Cherokee 是 64 位的。我正在将这些重建为 32 位。感谢您的帮助。
标签: php php-extension cherokee