prerender.io无头镀铬无法启动

时间:2017-11-23 08:55:25

标签: node.js prerender google-chrome-headless

我正试图在我的Centos7系统上使用无头镀铬(v62)开始预渲染,但它无法启动。 当运行“node server.js”时,我得到:

2017-11-23T08:50:08.329Z开始Prerender

2017-11-23T08:50:08.331Z启动Chrome

2017-11-23T08:50:08.343Z Prerender服务器接受端口3000上的请求

2017-11-23T08:50:08.392Z Chrome连接已关闭...重新启动Chrome

2017-11-23T08:50:08.392Z Chrome重启后立即死亡...停止Prerender

有谁知道原因是什么? 非常感谢你

4 个答案:

答案 0 :(得分:3)

那是因为您无法以root用户身份运行Chrome。尝试运行命令" sudo node server.js"和另一个用户。

为此你需要将该用户添加到Sudoers,这是一个很好的教程如何做到https://www.webhostinghero.com/add-a-user-to-sudoers-in-centos-linux/

答案 1 :(得分:3)

您还可以添加--no-sandbox以root身份运行Chrome。

vim $(which google-chrome)

然后将--no-sandbox添加到最后一行,使其像

exec -a "$0" "$HERE/chrome" "$@" --no-sandbox

答案 2 :(得分:0)

找出潜在问题的一种好方法是尝试自行运行chrome。 然后,如果失败了,应该给你一个错误的原因。只需找到您的chrome可执行文件,然后使用prerender传递您使用的所有标志,然后看看会发生什么情况。

对我来说,chrome无法启动,因为在其上运行的Windows系统没有chrome启动所需的字体文件。

尽管它可能是特定于Windows的,但是您可以在这里找到更多信息:https://github.com/prom3theu5/ServerCoreFonts

答案 3 :(得分:0)

解决方案是从预渲染模块修改 server.js 文件

var server = prerender({
  chromeFlags: ['--no-sandbox', '--headless', '--disable-gpu', '--remote-debugging-port=9222', '--hide-scrollbars']
});