dl不启用dl()?

我试图在Ubuntu 11.10上将第三方PHP扩展(.so)安装到PHP 5.3.6-13并在Web环境中使用它。 供应商的文档建议使用dl()函数动态加载库。

当我尝试他们的示例代码时,我发现dl()不可用(致命错误:调用未定义的函数dl()),因为dl()函数在PHP 5.3中已弃用。 但在php.ini中有一个enable_dl配置规则,其他来源表示我应该只需通过更改php.ini变量( enable_dl=Onsafe_mode=Off ,未在disable_functions列出)就可以使用dl(),然后重新启动阿帕奇。 当我尝试时, dl()仍然是未定义的。

因此,我深入了解PHP 5.3 SAPI变更注释并找到它:

dl()函数现在默认是禁用的,现在只能在CLI,CGI和嵌入SAPI下使用。

这是否意味着dl()不仅在PHP 5.3+中使用Web SAPI“被默认禁用”,而且实际上“无论我修改PHP配置选项时都完全不可用” ? 这就是我所认为的,因为无论我调整了什么,我都无法让dl()工作。

澄清:我可以修改php.ini并直接加载扩展,所以这不是一个关于如何让扩展工作的问题,而是关于函数dl()及其在PHP 5.3+中的状态。 如果在任何情况下它不再可用,我希望能够告诉供应商,所以他们可以更新他们的文档。 但如果它应该是可用的,我只是错过了一些东西,我也想听到。


该函数已从PHP 5.3中的一些SAPI中删除。 - dl()

因此,如果您将ini设置enable_dl设置为on ,并且仍然不起作用,那么它在您使用的SAPI中被禁用。

如果你想知道哪些是SAPI,那么同一页上的更新日志就更加详细:

唯一允许dl() SAPI是CLI和Embed。

你没有使用这两个中的任何一个。 相反,使用扩展加载指令,你很好。

链接地址: http://www.djcxy.com/p/11135.html

上一篇: dl not enabling dl()?

下一篇: called when you say it out loud?