【问题标题】:Imagick shows no supported formats when PHP is run from CLI, works when PHP is run from Apache当 PHP 从 CLI 运行时,Imagick 显示不支持的格式,当 PHP 从 Apache 运行时工作
【发布时间】:2018-02-17 17:57:29
【问题描述】:

我在 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/模块/编码器

【问题讨论】:

    标签: php windows apache imagemagick imagick


    【解决方案1】:

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

    您可以在 phpinfo() 中看到 Apache 中使用的那个,其中“加载的配置文件”字段将显示该文件。

    如果你在 CLI 中运行:

    php --ini
    

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

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

    【讨论】:

    • 感谢您的回答。我已经运行了您提出的测试,Apache 和 CLI 似乎都使用相同的 .ini:位于 xampp/php/php.ini 中的标准。我在 Apache 中运行了 phpinfo(),我得到了配置文件 (php.ini) 路径 C:\Windows 加载的配置文件 C:\xampp\php\php.ini。如果我在控制台中运行 phpinfo() 或者如果我使用 php.exe --ini 任何其他想法,我会得到完全相同的结果?
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-07-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-10
      • 1970-01-01
      • 2017-03-09
      相关资源
      最近更新 更多