PHP CLI不加载IMAP扩展

当我尝试运行在我的浏览器中使用imap的脚本时,它工作正常(它是从安装了扩展的networking上的Ubuntu 14.04服务器加载的)。 但是,当我尝试在服务器上使用PHP CLI时,它不会加载imap

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

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

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

当通过Apache调用并通过CLI调用时,PHP有单独的configuration文件。

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

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

我build议看看你的Linux发行版如何pipe理PHP扩展(Debian和Ubuntu,它使用一个名为php5enmod的命令,需要通过sudo调用),或者只是手动编辑/etc/php5/cli/php.ini或类似的是最新的。