PHP CLI 未加载 IMAP 扩展

PHP CLI 未加载 IMAP 扩展

当我尝试运行imap浏览器中使用的脚本时,它运行良好(它是从我网络上安装了扩展的 Ubuntu 14.04 服务器加载的)。但是,当我尝试在上述服务器上使用 PHP CLI 时,它无法加载imap

我编写了一个简单的脚本来检查已加载的扩展,使用它get_loaded_extensions(),我学到了两件事:

  • PHP CLI 有 50 个扩展,而通过我的 Web 浏览器运行它则有 51 个。
  • 我在apache2/php.ini( imagick.so) 中手动声明的另一个扩展正在 CLI 和浏览器中加载

为什么会发生这种情况?我怎样才能在 CLI 和浏览器中加载所有 51 个扩展?

答案1

通过 Apache 调用和通过 CLI 调用时,PHP 有单独的配置文件。

例如,至少在 Debian 中,这些分别在/etc/php5/apache2/php.ini和中/etc/php5/cli/php.ini

您在 apache2/php.ini 中手动声明的事实imagick.so可能并不意味着什么 - 大多数发行版都有其他方式来管理 PHP 模块,并且通常可以自动为您启用扩展,因此它可能已经被添加。

我建议查看你的 Linux 发行版如何管理 PHP 扩展(对于 Debian 和 Ubuntu,它使用一个名为的命令php5enmod,需要通过来调用sudo),或者只需手动编辑/etc/php5/cli/php.ini或类似操作即可保持最新。

相关内容