【问题标题】:php extension not loading in MAMPphp 扩展未在 MAMP 中加载
【发布时间】:2015-08-27 04:40:40
【问题描述】:

我正在使用 MAMP 服务器我正在尝试在我的 php 中加载一个扩展,但我遇到了错误,我尝试了所有方法,但我无法加载:(。

我正在使用 mac os 和 php 5.6.7

该行用于扩展:extension=protocolbuffers.so

我插入:Applications/MAMP/bin/php/php5.6.7/conf/php.ini

我也插入了:/Applications/MAMP/conf/php5.6.7/php.ini

仍然没有加载。

我运行名为 extension.php 的 php 文件来查看我的扩展是否正在加载。 所以我得到了错误,所以我绝对没有加载扩展:

致命错误:在第 3 行的 /Applications/MAMP/htdocs/ci-match/extension.php 中调用未定义函数 dl()

    <?php
if (!extension_loaded('protocolbuffers')) {
    if (!dl('protocolbuffers.so')) {
        exit;
    }
}
?>

我也用过php print_r(get_loaded_extensions()); ?>

但是我在那里看不到我的扩展程序,你们如何帮助我加载该扩展程序?

你们能帮我解决这个问题吗?谢谢。

【问题讨论】:

标签: php mamp protocol-buffers


【解决方案1】:

除了dl()-function 已从许多 SAPI 中完全删除之外,出于安全原因,它通常被禁用。 我不确定禁用是否会导致未定义的函数错误或某种安全错误。猜猜你必须找出答案。

您可以使用php.ini 中的enable_dl-directive 控制对其的访问,并确保未启用安全模式。

至于您尝试加载扩展程序:
我会运行一个带有 phpinfo(); 的 .php 文件。它会告诉你正在加载哪些 .ini 文件以及扩展目录在哪里。

然后您可以使用该信息将其添加到正确的位置。您的 MAMP 可能是从一个奇怪的位置加载的。

远程诊断此类问题非常困难。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-22
  • 2016-07-28
  • 2020-02-23
  • 2020-06-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多