我试图在我的网站上使用wkhtmltoimage但是没有用 这是我的测试网站代码
<?php
$output = shell_exec('/usr/local/bin/wkhtmltoimage --quality 95 --width 1024 --height 0 yahoo.com test1.jpg');
echo "<pre>$output</pre>";
?>
输出只是一个空白页面。有趣的是当我运行shell_exec(ls -l)
;而不是
shell_exec('/usr/local/bin/wkhtmltoimage --quality 95 --width 1024 --height 0 yahoo.com test1.jpg');
,它运行正常,当我从我的ssh终端运行wkhtmltoimage --quality 95 --width 1024 --height 0 yahoo.com test1.jpg
时,它给了我
Loading page (1/2)
Rendering (2/2)
QPixmap: Cannot create a QPixmap when no GUI is being used ] 25%
QPixmap: Cannot create a QPixmap when no GUI is being used
QPixmap: Cannot create a QPixmap when no GUI is being used
QPixmap: Cannot create a QPixmap when no GUI is being used
QPixmap: Cannot create a QPixmap when no GUI is being used
QPixmap: Cannot create a QPixmap when no GUI is being used
Done
但它会继续并创建jpg文件
当我为yahoo.com尝试相同的命令时,这就是我得到的
catarplc@zenbile.com [~/public_html]# wkhtmltoimage --quality 95 --width 1024 --height 0 yahoo.com test100.jpg
Loading page (1/2)
Error: Failed loading page http://yahoo.com (sometimes it will work just to ignore this error with --load-error-handling ignore)
Error: Failed loading page http://yahoo.com (sometimes it will work just to ignore this error with --load-error-handling ignore)
不同的网站给了我不同的消息。 anyboody知道发生了什么事吗?我雇用来做我的网站的人说这是一个服务器问题而且不想做任何其他事情,我的网站主办公司一直告诉我shell_exec()工作正常并且wkhtmltoimage安装正确....我需要帮助和双方我付钱帮助我并没有帮助我。任何人都可以帮忙吗???
谢谢
答案 0 :(得分:2)
根据我的小知识,它正在发生,因为在“robots.txt”文件中禁用了权限。您的代码和库中没有问题。
仅适用于robots.txt中包含“允许”权限的网站
你不会获得yahoo.com,imdb.com等的缩略图,但你可以获得google.com,hotmail.com等的缩略图
答案 1 :(得分:1)
如果您提供了HTML
的路径错误,则会发生这种情况:
<a href="http"//wwww.google.com">google.com</a>
看起来剧本很混乱;请检查HTML
路径。
答案 2 :(得分:1)
这是因为wkhtmltoimage需要X服务器实例来转换包含图像的网页。
简而言之,如果您正在运行X服务器,只需添加--use-xserver参数。
如果不这样做,则需要使用xvfb将命令包装在虚拟X服务器实例中。
sudo apt-get install xvfb
xvfb-run --server-args="-screen 0, 1280x1024x24" wkhtmltoimage --use-xserver http://yahoo.com test.pdf
有关更详细的说明,请查看:http://blog.hugerepo.com/2013/04/28/what-is-the-qpixma/
答案 3 :(得分:0)
似乎问题实际上在wkhtmltoimage,有一个错误报告。它似乎也已经修复了bug,但目前的稳定版还没有。你可能想考虑尝试RC,看看是否能解决你的问题。但是请注意,在生产环境中使用RC通常不会被提倡。