当来自 CLI 的 PHP 为 运行 时,Imagick 显示不支持的格式,当来自 Apache 的 PHP 为 运行 时有效

Imagick shows no supported formats when PHP is run from CLI, works when PHP is run from Apache

我在 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 复制到以下目录,但没有成功:

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

您可以在 phpinfo() 中看到在 Apache 中使用的那个,其中字段 "Loaded Configuration File" 将显示该文件。

如果您在 CLI 中 运行:

php --ini

您应该会在控制台中看到正在使用的那个。

确认这两个文件都包含 Imagemagick 的配置。

看来我设法解决了我的问题。该问题似乎特定于 Imagick。我添加了一个名为 "MAGICK_HOME" 的环境变量,它指向 ImageMagick 文件夹(所有 dll 也位于该文件夹中),现在一切似乎都运行良好。