MAMP PRO 和 imagick 'ImagickException' 以及消息 'FailedToExecuteCommand'

MAMP PRO and imagick 'ImagickException' with message 'FailedToExecuteCommand'

我真的很惊讶这个问题还没有得到回答。所以,这是我的问题。我正在尝试在 MAMP PRO 3.2.1

下使用 imagick 打开 PDF

我已经设置了一个本地服务器,并在其中放入了以下代码:

<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);

$img = new imagick();

// $img->readImage("filename.jpg");
$img->readImage("filename.pdf");

$img->setImageCompression(imagick::COMPRESSION_JPEG);   
$img->setImageCompressionQuality(50);
$img->stripImage(); 

echo "I've just done a bunch of useless stuff!";
?>

我没有收到响应 "I've just done a bunch of useless stuff!",而是收到以下错误:

Fatal error: Uncaught exception 'ImagickException' with message 'FailedToExecuteCommand `"/Applications/MAMP/Library/bin/gs" -q -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 "-sDEVICE=pngalpha" -dTextAlphaBits=4 -dGraphicsAlphaBits=4 "-r72x72" "-sOutputFile=/var/tmp/magick-37204WejycxOWotDX%d" "-f/var/tmp/magick-37204yFoZNLVNVn6B" "-f/var/tmp/magick-37204aRp_iZaRakLl"' (-1) @ error/utility.c/SystemCommand/2051' in /Users/Jason/Code/git/imagick-test/web/imagick.php:11 Stack trace: #0 /Users/Jason/Code/git/imagick-test/web/imagick.php(11): Imagick->readimage('projects/26/556...') #1 {main} thrown in /Users/Jason/Code/git/imagick-test/web/imagick.php on line 8

奇怪的是,如果我注释掉 PDF 行并取消注释 JPG 行,代码运行没有任何问题。

现在,我知道 ghostscript 是随 MAMP PRO 安装的,所以我不需要安装它或任何东西,但我不知道为什么、如何,甚至不知道如何处理它无法阅读/var/tmp/ 中的一个文件,而我的文件位于 /Users/Jason/Code/git/imagick-test/web/imagick/ 文件夹中。除了撕掉我的头发,我什么都做了。如果您能提供任何信息,请提供。

我写信给 MAMP Pro 开发人员,这是他们的回复:

Hi,

Sorry for the delay. You need to install xQuartz. Follow the link here

https://support.apple.com/en-us/HT201341

http://xquartz.macosforge.org/landing/

我没有在任何地方看到这个记录,所以我用这个答案更新我的问题。

他们为延迟道歉,因为我在他们部署 MAMP PRO 3.4 时向他们寻求帮助。