当从CLI运行PHP时,Imagick显示没有支持的格式,当从Apache运行PHP时工作

我在Windows系统上使用ImageMagick 6.9.3-7 Q16 x86 2016-03-27和PHP版本7.0.6。

一切工作正常,当我通过Apache从网页运行PHP,如果我打电话phpinfo()我会在Imagemagick模块部分看到很多支持的格式。

但是,如果我从CLI运行PHP,phpinfo()将不会显示Imagemagick支持的格式。 我怀疑这是IM_MOD_ * DLL的位置的问题。 我注意到Apache把它们从/ bin中取出,而不是从Imagemagick安装文件夹中取出。 也许PHP-CLI试图从其他地方拉他们? 但是哪里? 我试图将dll复制到以下目录中,但没有运气:

  • C:\ WINDOWS \ SYSTEM32
  • Imagemagick根文件夹
  • ImageMagick的/模块/编码器

Apache和CLI使用不同的.ini文件,这些文件可能没有相同的配置。

您可以在phpinfo()中的“Loaded Configuration File”字段中看到正在Apache中使用的文件。

在CLI中如果运行:

php --ini 

你应该看到在控制台中使用的那个。

验证这两个文件是否包含Imagemagick的配置。

看起来我设法解决我的问题。 这个问题似乎是Imagick特有的。 我添加了一个名为“MAGICK_HOME”的指向ImageMagick文件夹的环境变量(所有dll都驻留在这里),现在一切似乎都正常。