我正试图在我的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
有谁知道原因是什么? 非常感谢你
答案 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']
});