Php 正在尝试使用imagemagick,空白页
所以今天在stackoverflow上四处窥探之后,我发现了Php 正在尝试使用imagemagick,空白页,php,imagemagick,Php,Imagemagick,所以今天在stackoverflow上四处窥探之后,我发现了imagemagick,它看起来很棒。请记住,我今天才发现这一点,我一直在胡闹,试图让它为我工作了几个小时,但无济于事,所以我真的需要一些指导 我问了我的主机公司,我检查了终端,我确实有 我穿过油灰跑: whereis convert 把我吐了出来: convert: /usr/bin/convert /usr/share/man/man1/convert.1.gz 然后再次检查: /usr/bin/convert --versio
imagemagick
,它看起来很棒。请记住,我今天才发现这一点,我一直在胡闹,试图让它为我工作了几个小时,但无济于事,所以我真的需要一些指导
我问了我的主机公司,我检查了终端,我确实有
我穿过油灰跑:
whereis convert
把我吐了出来:
convert: /usr/bin/convert /usr/share/man/man1/convert.1.gz
然后再次检查:
/usr/bin/convert --version
这给了我:
Version: ImageMagick 6.7.2-7 2015-07-29 Q16 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2011 ImageMagick Studio LLC
Features: Open MP
因此,在我的public_html中,我创建了一个名为test.php的文件,其中我放置了:
<?php
try
{
$cmd = "public_html/account/archives/emails/2015/November-Email.pdf";
exec("usr/bin/convert $cmd");
}
catch(Exception $e)
{
die('Error when creating a file: ' . $e->getMessage());
}
?>
当我运行
test.php
时,它只会显示一个空白屏幕,非常清楚地显示出一些错误,甚至没有显示错误消息。您没有输出文件名。
exec()不会显示任何内容,但在某些情况下system()会显示
exec(“/usr/bin/convert-version”)将不显示任何内容
系统(“/usr/bin/convert-version”)应显示版本
根据您的设置,您可以只使用convert
图像的路径可以是相对的
- 在文件名中:(
exec()
不会引发异常,因此无法访问catch
子句。此外,exec()
通常不会回显输出,因此空白屏幕不一定表示存在任何问题。当您从命令行手动执行convert
命令时,该命令是否有效?此外,请尝试以下修改以进行调试:$output=array();exec(“usr/bin/convert$cmd”,“$output”);var_dump($output)$cmd
没有足够的参数来执行转换
实用程序。它可能正在向stdout(而不是浏览器)发送帮助消息。@NateB我应用了你的代码,现在页面显示:数组(0){}
很高兴在这里看到你,@emcconville!小世界,嗯?希望一切都好:)现在我得到的是数组([0]=>sh:usr/bin/convert:没有这样的文件或目录)1
这是否意味着它与imagemagick无关?尝试一些简单的方法-将文件放在与代码相同的目录中。因此,我将pdf移到根文件夹中,并在putty中尝试了usr/bin/convert public_html/seal-2015.pdf output.jpg
,它运行时没有错误,但我没有任何新文件。如果我在脚本中这样做,它仍然返回上面的错误。在脚本中,您现在有public/html还是public\u html?为了取悦我,将该文件与代码放在同一个文件夹中,并将$cmd更改为$cmd=“11月Email.pdf”;您还可以试着运行系统(“/usr/bin/convert-version”),看看能得到什么来证明php可以访问Imagemagick
<?php
$array=array();
echo "<pre>";
$cmd = "public/html/account/archives/emails/2015/November-Email.pdf";
exec("usr/bin/convert -density 300 $cmd output.jpg 2>&1", $array);
echo "<br>".print_r($array)."<br>";
echo "</pre>";
?>