Bitnami Ubuntu Lightsail服务器中Puppeteer启动失败问题求助
Puppeteer在Bitnami Ubuntu Lightsail服务器启动失败的解决方案
1. 补充Chrome运行依赖
Bitnami环境默认缺少Chrome运行必需的系统库,执行以下命令安装:
sudo apt-get update sudo apt-get install -y libnss3 libatk-bridge2.0-0 libdrm-dev libxkbcommon-dev libgbm-dev libasound-dev libatspi2.0-0 libxshmfence-dev
2. 优化Puppeteer启动参数
在现有参数基础上添加适配服务器环境的配置,避免连接重置和进程启动失败:
const browser = await puppeteer.launch({ args: [ '--no-sandbox', '--disable-setuid-sandbox', '--disable-dev-shm-usage', '--disable-gpu', '--no-zygote', '--single-process' ], headless: 'new' });
--disable-setuid-sandbox:配合无沙箱模式规避权限限制--disable-dev-shm-usage:解决服务器临时内存空间不足问题--disable-gpu:服务器无GPU硬件,禁用GPU加速减少报错--no-zygote/--single-process:简化进程模型,降低连接中断概率
3. 修复Chrome缓存目录权限
检查Puppeteer自动下载的Chrome权限,确保Bitnami用户有执行权限:
sudo chmod -R 755 /home/bitnami/.cache/puppeteer/chrome/linux-1108766/
4. 切换为系统安装的Chrome(备选方案)
如果缓存目录的Chrome始终无法正常运行,改用系统级安装的Chromium:
先安装Chromium:
sudo apt-get install -y chromium-browser
然后在代码中指定可执行文件路径:
const browser = await puppeteer.launch({ args: ['--no-sandbox', '--disable-setuid-sandbox'], headless: 'new', executablePath: '/usr/bin/chromium-browser' });
5. 验证Node.js版本兼容性
确保Node.js版本与Puppeteer版本匹配,建议使用18.x或20.x LTS版本。运行node -v查看当前版本,版本过低则执行升级:
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash - sudo apt-get install -y nodejs
内容的提问来源于stack exchange,提问作者Harkishan Motka
相关产品推荐
相关产品推荐

