当从CLI运行PHP时,Imagick显示不支持格式,在从Apache运行PHP时工作
问题描述:
我在Windows系统上使用ImageMagick 6.9.3-7 Q16 x86 2016-03-27和PHP版本7.0.6。当从CLI运行PHP时,Imagick显示不支持格式,在从Apache运行PHP时工作
当我通过Apache从网页运行PHP时,一切正常,如果我打电话给phpinfo(),我会在Imagemagick模块部分看到很多支持的格式。
但是,如果我从CLI运行PHP,phpinfo()将不会显示Imagemagick支持的格式。我怀疑这是IM_MOD_ * dll的位置问题。我注意到Apache将它们从/ bin中取出,而不是从Imagemagick安装文件夹中取出。 也许PHP-CLI试图从其他地方拉他们?但是哪里?我试图将DLL文件没有运气复制到以下目录:
- C:\ Windows \ System32下
- ImageMagick的根文件夹
- ImageMagick的/模块/编码器
答
看起来我设法解决我的问题。这个问题似乎是Imagick特有的。我添加了一个名为“MAGICK_HOME”的环境变量,指向ImageMagick文件夹(所有dll都驻留在该文件夹中),现在一切似乎都正常。
答
Apache和CLI使用可能不具有相同配置的不同.ini文件。
您可以在phpinfo()中的“已加载配置文件”字段中显示该文件的地方看到Apache中使用的一个。
在CLI中,如果你运行:
php --ini
你应该看到在控制台中使用的一个。
验证这两个文件是否包含Imagemagick的配置。
感谢您的回答。我已经运行了你提出的测试,Apache和CLI似乎都使用相同的.ini:位于xampp/php/php.ini中的标准测试。 我已经在Apache中运行phpinfo(),并且我得到了 配置文件(php.ini)路径\t C:\ Windows 加载的配置文件\t C:\ xampp \ php \ php.ini。 如果我在控制台中运行phpinfo(),或者如果使用php.exe --ini 其他想法,我会得到完全相同的结果吗? – Daniel