下面我正在编写我的phantomjs和PHP代码
导游:/var/www/html/phantom/index.js
var page = require('webpage').create(); var fs = require('fs'); page.open('http://insttaorder.com/',function(status) { // Get all links to CSS and JS on the page var links = page.evaluate(function() { var urls = []; $("[rel=stylesheet]").each(function(i,css) { urls.push(css.href); }); $("script").each(function(i,js) { if (js.src) { urls.push(js.src); } }); return urls; }); // Save all links to a file var url_file = "list.txt"; fs.write(url_file,links.join("\n"),'w'); // Launch wget program to download all files from the list.txt to current // folder require("child_process").execFile("wget",[ "-i",url_file ],null,function(err,stdout,stderr) { console.log("execFileSTDOUT:",stdout); console.log("execFileSTDERR:",stderr); // After wget finished exit PhantomJS phantom.exit(); }); });
导游:/var/www/html/phantom/index.PHP
exec('/usr/bin/phantomjs index.js 2>&1',$output); echo '<pre>'; print_r($output); die;
也尝试过
exec('/usr/bin/phantomjs /var/www/html/phantom/index.js 2>&1',$output); echo '<pre>'; print_r($output); die;
运行后,我得到低于错误
Array ( [0] => QXcbConnection: Could not connect to display [1] => PhantomJS has crashed. Please read the bug reporting guide at [2] => and file a bug report. [3] => Aborted (core dumped) )
user2@user2-H81M-S:/var/www/html/phantom$PHP index.PHP
然后它工作正常.我不知道如何解决它.请帮忙.
我正在使用以下版本
系统版本:Ubuntu 16.04.2 LTS
PHP版本:5.6
幻影版:2.1.1
解决方法
我遇到了同样的情况并找到了一些解决方案:
一个.将变量QT_QPA_PLATFORM定义或设置为屏幕外:
QT_QPA_PLATFORM=offscreen /usr/bin/phantomjs index.js
export QT_QPA_PLATFORM=offscreen
C.或安装包xvfb并在phantomjs之前调用xvfb-run:
xvfb-run /usr/bin/phantomjs index.js
d.或使用参数平台:
/usr/bin/phantomjs -platform offscreen index.js
也许您不希望/不能在您的服务器上进行修改,在这种情况下,您可能会尝试从official website下载静态二进制文件:
/path/to/the/bin/folder/phantomjs index.js
和/或在.bash_aliases文件中创建一个别名,如下所示:
alias phantomjs=/path/to/the/bin/folder/phantomjs
make sure that
phantomjs
is not installed already on the system if you decide to use the alias.if the file
.bash_aliases
not exist already,feel free to create it or add thealias
line at the end of the.bashrc
file
一些参考:
> https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=817277
> https://github.com/ariya/phantomjs/issues/14376
> https://bugs.launchpad.net/ubuntu/+source/phantomjs/+bug/1586134
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。