我正在尝试在 Ubuntu 11.10 上将第 3 方 PHP 扩展 (.so) 安装到 PHP 5.3.6-13 中并在 Web 环境中使用它。供应商的文档建议使用该dl()
函数来动态加载库。
当我尝试他们的示例代码时,我发现dl()
不可用(致命错误:调用未定义的函数 dl()),因为dl()
函数在 PHP 5.3 中已被弃用。但是 php.ini 中有一个enable_dl
配置规则,其他消息来源说我应该能够通过更改 php.ini 变量(enable_dl=On
, safe_mode=Off
,未在 中列出disable_functions
)并重新启动 apache 来使用 dl()。当我尝试时,dl()
仍然未定义。
因此,我深入研究了PHP 5.3 SAPI 更改说明并找到了以下内容:
dl() 函数现在默认禁用,现在仅在 CLI、CGI 和嵌入 SAPI 下可用。
这是否意味着它dl()
不仅在使用 web SAPI 的 PHP 5.3+ 中“默认禁用” ,而且实际上“即使修改 PHP 配置选项也完全不可用”?dl()
在我看来就是这样,因为无论我如何调整,我都无法开始工作。
澄清一下:我可以修改 php.ini 并直接加载扩展,所以这不是关于如何让扩展工作的问题,而是关于dl()
PHP 5.3+ 中的函数及其状态的问题。如果它在任何情况下不再可用,我希望能够告诉供应商,以便他们可以更新他们的文档。但是,如果它应该可用并且我只是缺少一些东西,我也想听听。