PHP CLI 未加载 IMAP 扩展

cap*_*ech 3 php imap php-cli

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

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

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

为什么会发生这种情况,如何在 CLI 和浏览器中加载所有 51 个扩展?

Dan*_*son 6

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

例如,在 Debian(至少)中,它们分别在/etc/php5/apache2/php.ini和 中/etc/php5/cli/php.ini

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

我建议查看您的 linux 发行版如何管理 PHP 扩展(对于 Debian 和 Ubuntu,它使用名为 的命令php5enmod,该命令需要通过 调用sudo),或者只是手动编辑/etc/php5/cli/php.ini或类似以保持最新状态。