MacBook Pro 2008年初
OSX Lion 10.7.3
MAMP 2.0.5
ImageMagick-x86_64-apple-darwin11.3.0.tar.gz - 从终端安装并完美地工作
gplgs-8.71.dmg - 从Terminal和Imagick安装并完美运行
使用终端“转换”命令完美运行!我可以毫无问题地在JPG中转换PDF ...
如果我尝试在PHP中使用Imagick(最简单的)演示命令:
“convert logo:logo.gif”
什么都没发生!我一步一步地跟着this guide,我知道我要修改“envvars”文件并且我做了但是......它不是解决方案!
我试图读取shell错误但在PHP中没有返回任何内容...我尝试了所有类型的命令:
define('MAGICK_PATH', '/Applications/MAMP/bin/ImageMagick/ImageMagick-6.7.5/bin/');
echo exec(MAGICK_PATH.'convert logo: logo.gif', $output);
var_dump($output);
=> array(0) { }
$output = shell_exec(MAGICK_PATH."convert logo: logo.gif");
echo "<pre>$output</pre>";
=> *nothing*
$last_line = system(MAGICK_PATH.'convert logo: logo.gif', $retval);
echo '
</pre>
<hr />Last line of the output: ' . $last_line . '
<hr />Return value: ' . $retval;
=> Last line of the output:
=> Return value: 5
$last_line = system(MAGICK_PATH.'convert -version', $retval);
echo '
</pre>
<hr />Last line of the output: ' . $last_line . '
<hr />Return value: ' . $retval;
=> Last line of the output:
=> Return value: 5
$last_line = system(MAGICK_PATH."convert -colorspace RGB -interlace none -density 104.6x104.6 -quality 100 -bordercolor white doc.pdf[0] doc.png", $retval);
echo '
</pre>
<hr />Last line of the output: ' . $last_line . '
<hr />Return value: ' . $retval;
=> Last line of the output:
=> Return value: 5
我想也许程序没有被发现但是...我可以在任务管理器中看到它并且CPU工作了几秒钟,Imagick正在做一些事情但最终我没有任何输出! ! &GT; _&LT;我发现了很多关于这方面的话题,但我还没有找到一个有效的解决方案...
答案 0 :(得分:2)
尝试包装如下命令:
exec($cmd." 2>&1", $out, $ret);
if ($ret){
echo "There was a problem!\n";
print_r($out);
}else{
echo "Everything went better than expected!\n";
}
exec()
可让您捕获所有输出并获取退出代码。添加2>&1
可确保将STDERR
重定向到STDOUT
,以便您可以看到任何错误消息。
答案 1 :(得分:0)
另外,作为我之前评论的附录:尝试提供输入和输出文件名的完全限定路径。命令在PHP中启动,具有默认的当前工作目录 - 这可能与脚本实际包含在的目录中不同。
如果要查看系统命令的默认目录,请尝试:
exec('pwd');
如果您的任何路径中有空格(或者在任何阶段它们包含用户输入),您应该通过escapeshellarg()
运行参数以确保它们能够正常工作(并且它们可以安全运行)。 / p>