2011-08-03 33 views
0

我用我的服务器上的wkhtmtoimage库,我已经成功地得到输出下面的命令,当我在腻子正在运行:这个shell命令为什么不提供所需的结果?

wkhtmltoimage www.google.com test.jpg 

但是,当我用下面的shell命令我没有得到输出,我不知道为什么。

$filnename = "test.jpg"; 
$url = "http://www.google.com";  
shell_exec("wkhtmltoimage $url $filename"); 

即使我试图与这种变化相反,但仍然没有得到想要的结果:

shell_exec("/usr/local/bin/wkhtmltoimage $url $filename"); 

我在做什么错?

编辑:

我下载的Linux二进制文件,并把它放入文件夹,然后我跑it.Whether我需要重新启动受影响的更改服务器?

了shell_exec命令允许的,因为我们把它用于ffmpeg的(已安装)

+2

您是否收到任何错误? – Dogbert

+1

尝试在命令末尾添加'2>&1'来捕获错误消息 – wonk0

+0

小问题,PHP脚本中的域与SSH中的域不同(请注意PHP脚本中的http://) – ChrisH

回答

0

我不能给出一个确切的解决方案,但如果你可以尝试一下我写的东西,我可能会有所帮助。如果我提供的解决方案无效,我会列出更多解决方案。

解决方案1:
各地URL和文件名

shell_exec("wkhtmltoimage \"$url\" \"$filename\""); 

解决方案2使用引号:
尝试重定向流文件,并键入内容。

shell_exec("wkhtmltoimage \"$url\" \"$filename\" > output.txt 2> error.txt"); 
+0

我需要检查error.txt文件。现在我也没有得到任何图像。 – svk

+0

只是从shell中读取内容,或者使用echo file_get_contents(“error.txt”);输出也一样。只要检查他们是否有任何有用的信息。 –

+0

echo file_get_contents(“error.txt”);它显示我一个空白屏幕 – svk

0

可能是PHP(或Apache)运行时没有权限运行此工具的用户。尝试打印此命令的输出或仅使用passthru()来直接打印命令的输出。 另一个解决方案是将输出传递给@Cem_Kalyoncu写的文件。

+0

没有显示任何东西在页面上。任何想法?挣扎一天我不能找到错误。 – svk

+0

可能wkhtmltoimage没有权限创建文件或写入PHP脚本所在目录中的文件? – Timur

+0

但是,如果我使用腻子,它可以写入文件。所以使用腻子和脚本之间有任何区别。我希望它不是那样。如果我使用腻子,我得到根文件夹中的文件。 – svk

相关问题