我在我的服务器上使用 wkhtmtoimage 库,当我在PuTTY中运行时,我已设法获取以下命令的输出:
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二进制文件并将其放入文件夹然后运行它。我是否需要重新启动服务器,这些更改会受到影响?
允许使用shell_exec命令,因为我们将它用于ffmpeg(已经安装了一个)
答案 0 :(得分:0)
我不能给出确切的解决方案,但如果你能尝试我写的东西,我可能会有所帮助。如果我提供的解决方案不起作用,我会列出更多解决方案。
解决方案提案1:
在url和filename
shell_exec("wkhtmltoimage \"$url\" \"$filename\"");
解决方案提案2:
尝试将流重定向到文件并键入内容。
shell_exec("wkhtmltoimage \"$url\" \"$filename\" > output.txt 2> error.txt");
答案 1 :(得分:0)
可能是运行PHP(或Apache)的用户无权运行此工具。尝试打印此命令的输出或只使用passthru()
直接打印命令输出。
另一种解决方案是将输出传递给文件,如@Cem_Kalyoncu所写。