centos7|centos7 puppeteer Error: Failed to launch the browser process!
错误
运行后提示Error: Failed to launch the browser process!
...
...
排查
github puppeteer/issues:
https://github.com/puppeteer/...
原因是系统缺少一些包,puppeteer的文档中也有说明:
【centos7|centos7 puppeteer Error: Failed to launch the browser process!】https://github.com/puppeteer/...
解决
按照文档安装依赖包:
yum install pango.x86_64 libXcomposite.x86_64 libXcursor.x86_64 libXdamage.x86_64 libXext.x86_64 libXi.x86_64 libXtst.x86_64 cups-libs.x86_64 libXScrnSaver.x86_64 libXrandr.x86_64 GConf2.x86_64 alsa-lib.x86_64 atk.x86_64 gtk3.x86_64 -y
重启node服务,依旧报错:
Error: Failed to launch the browser process!
[0308/163337.932654:ERROR:zygote_host_impl_linux.cc(90)] Running as root without --no-sandbox is not supported. See https://crbug.com/638180.
文档中也有提到:
https://github.com/puppeteer/...
原因是在root权限下打开了Chromium,可以换角色运行node服务,另一种解决方式是,开启Chromium时传入参数:
const browser = await puppeteer.launch({ args: ['--no-sandbox', '--disable-setuid-sandbox'] })
puppeteer不建议这么做,但我这里是测试,无所谓了,生产环境切勿这么做。
重启node服务,截图成功但中文乱码,原因是,centos7中缺失中文字体的原因。
解决缺失字体
下载安装字体即可:
- 安装字体管理工具
安装fontconfig来管理字体库
yum -y install fontconfig
安装完fontconfig时,在/usr/shared目录就可以看到fonts和fontconfig目录了(之前是没有的)
查看所有字体:
fc-list
查看中文字体:
fc-list :lang=zh
- 创建字体目录并并修改权限
mkdir /usr/share/fonts/chinese
修改字体文件的权限,使root用户以外的用户也可以使用:
chmod -R 755 /usr/share/fonts/chinese
- COPY字体到/usr/share/fonts/chinese
- 建立字体索引信息,更新字体缓存
cd /usr/share/fonts/chinese
mkfontscale //如果提示 mkfontscale: command not found,需自行安装 # yum install mkfontscale
mkfontdir
fc-cache -fv //如果提示 fc-cache: command not found,则需要安装# yum install fontconfig
推荐阅读
- 后端|Postman 使用 “status“: 415, “error“: “Unsupported Media Type“, “message“: “Content type ‘app
- JAVA|Spring boot 提示“Whitelabel Error Page”
- nginx|Centos7利用Certbot部署和更新Nginx下的SSL证书
- centos7使用letsencrypt获取免费https证书
- IOS|Flutter运行Ios真机时报错(Failed to register observatory port with mDNS with error)
- mysql|【centos7 + MySQL5.7 安装】centos7 安装MySQL5.7
- supervisor|centos7安装supervisor及supervisor web管理界面、supervisor守护进程使用
- 解析OpenSSL1.1.1|解析OpenSSL1.1.1 centos7安装编译aes的c++调用
- ROSERROR : CMake Error at /opt/ros/melodic/share/cv_bridge/cmake/cv_bridgeConfig.cmake:113 (message)
- CentOS7安装MYSQL8.X详细教程