Php imagickException:Postscript委托失败imagick IIS

Php imagickException:Postscript委托失败imagick IIS,php,pdf,imagemagick,ghostscript,imagick,Php,Pdf,Imagemagick,Ghostscript,Imagick,我正在使用这些行将pdf转换为jpg: $img = new imagick($url.'[0]'); $im->setImageColorspace(255); $im->setCompressionQuality(95); $im->setImageFormat('jpeg'); 我已经安装了带有软ImageMagick 6.7.7-10 2012-06-27 Q16(x86)的imagick 3.1.0RC2。我还有一个x86PHP5.4.22非线程,我在Windows

我正在使用这些行将pdf转换为jpg:

$img = new imagick($url.'[0]');
$im->setImageColorspace(255);
$im->setCompressionQuality(95);
$im->setImageFormat('jpeg');
我已经安装了带有软ImageMagick 6.7.7-10 2012-06-27 Q16(x86)的imagick 3.1.0RC2。我还有一个x86PHP5.4.22非线程,我在WindowsServer2012上使用IIS8。php_imagick.dll适用于5.14 nts,因此应该可以工作。ghostscript版本是gs9.10,我安装了32位和64位。它与msdos命令行完美配合,但与PHP不配合

然后我在创建对象时出现了这个错误

ImagickException:Postscript委托失败 `D:\inetpub\website\sites\default\files\image\u 2.pdf”:没有此类文件或 Imagick->\uuu construct()中的目录@error/pdf.c/ReadPDFImage/677

这是一个环境变量问题吗? 我将ghostscript的imagick文件夹和bin文件夹作为windows环境变量

有什么想法吗


欢呼声似乎表明imagick找不到ghostscript可执行文件

确保GS可执行文件位于相关路径中:

<?php
phpinfo(INFO_ENVIRONMENT);
?>

…在该页中搜索路径

如果不存在,请将其添加到需要的脚本中:

<?php
putenv(getenv('PATH').':path/to/ghostscript/executable')
?>

我终于找到了答案! 问题是windows的临时文件夹(c:\windows\temp)(php.ini中的upload\u tmp\u dir)必须为用户IUSR或IIS\u IUSRS读写(取决于您的IIS版本)
感谢大家的帮助

对于PHP“用户”和您的用户来说,环境可能不一样。检查两个用户的环境路径,以及以GS\U开头的任何环境变量。对于这两个用户,我有C:\Program Files\GS\gs9.10\bin,但我没有任何GS环境变量。我应该为这个输入什么?虽然安装程序通常在Windows上至少设置一个,但您并不特别需要。如果工作的用户没有任何GS_*环境变量并且可以工作,那么这显然不是问题所在。好的,谢谢!你有其他线索吗?对不起,没有,我只能想到这些。你提到你有32位和64位版本;所有可执行文件的位都应该匹配。如果说它在“程序文件”中而不是“程序文件(x86)”中,则意味着——除非您仍然是XP或更低版本——您正在引用一个64位可执行文件。32位imagemagick可能无法运行64位库。如果仍然安装了32位版本,请确保路径指向该版本。如果没有,请卸载64位版本并安装32位版本,然后重复上述步骤。我安装64位版本是因为3不工作,我将重试以防万一。谢谢