Php 正在尝试使用imagemagick,空白页

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

所以今天在stackoverflow上四处窥探之后,我发现了
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

图像的路径可以是相对的

  • 在文件名中:(
您可能希望向命令添加密度以控制pdf质量

尝试一下:



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>"; 
    ?>