当我尝试通过PHP imagick将PDF的第一页转换为JPG时,我得到一个HTTP 500错误,php_errors.log中没有日志。
来自IIS的解释: FastCGI进程异常退出
错误码:0xc0000417在C:'Windows'Temp
中创建了两个文件,第一个是读取的PDF文件;另一个为0 Kb长度。
我能够执行命令行转换与ImageMagick(转换一些。pdf一些。jpg)。因此,ImageMagick和GhostScript运行良好。此外,我能够从PHP脚本之间转换JPG和GIF。
PHP代码:$im = new Imagick();
$im->setResolution(300,300);
$im->readimage('poster.pdf[0]');
$im->setImageFormat('jpeg');
$im->writeImage('poster.jpg');
$im->clear();
$im->destroy();
我的环境:- Windows 7 Professional 64位
- IIS 7.5 PHP 5.3.6 NTS VC9PHP imagick扩展v.3.1.2 (5.3 NTS VC9 x86, from PECL)
- ImageMagick-6.7.7-0-Q16-windows-dll (x86)
- GhostScript 9.07 win32 (x86)
- Microsoft Visual c++ 2008可重新发布的x86
- 将ImageMagick的路径添加到Path环境变量
- 文件夹
C:'Windows'Temp
和C:'imagemagick
中IUSR和IIS_IUSRS的权限。
所以,谁能给我一些指导来调试这个错误,让事情运行?
正如Danack建议的,ImageMagick 必须从imagick所在的位置下载。编译器版本和处理器架构必须与PHP和GhospScript(在我的情况下,VC9, x86)相匹配。
然而,并不是所有版本的ImageMagick可用在这个存储库似乎与那些imagick和/或GhostScript一致。在我的例子中,最后成功的组合是:
- imagick 3.1.2
- ImageMagick 6.8.8
- 内容9.07