You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Chrome新版本128.0.6613.84导致chrome-php/chrome启动失败求助

解决Chrome 128升级后HeadlessChromium无法启动的问题

问题分析

Chrome 128.0.6613.84版本对crashpad崩溃处理机制的配置要求更严格,同时默认用户数据目录的权限逻辑也有变化,导致原有的HeadlessChromium初始化代码失效,且手动添加的args参数可能因兼容性或配置顺序问题未生效。

解决方案

1. 准备合法的用户数据目录

先创建一个www-data用户完全可控的目录,替代默认的~/.local:

sudo mkdir /var/www/chrome-user-data
sudo chown -R www-data:www-data /var/www/chrome-user-data
sudo chmod 755 /var/www/chrome-user-data

2. 修改PHP初始化代码

更新createBrowser的配置,确保参数正确传递,同时使用Chrome新版本推荐的无头模式参数:

$browserFactory = new \HeadlessChromium\BrowserFactory();
$browser = $browserFactory->createBrowser([
    'windowSize' => [1024, 768],
    'debugLogger' => 'php://stderr',
    'args' => [
        '--no-crashpad',
        '--disable-dev-shm-usage',
        '--disable-gpu',
        '--headless=new', // Chrome 112+推荐的新无头模式
        '--disable-software-rasterizer',
        '--no-sandbox',
        '--user-data-dir=/var/www/chrome-user-data', // 显式指定用户数据目录
    ],
]);

3. 确保依赖库兼容

检查chrome-php/chrome库版本,旧版本可能无法正确传递参数到Chrome 128,执行更新:

composer update chrome-php/chrome

4. 手动验证参数有效性

切换到www-data用户,直接执行Chrome命令测试参数是否生效:

sudo -u www-data /usr/bin/google-chrome --no-crashpad --disable-dev-shm-usage --disable-gpu --headless=new --disable-software-rasterizer --no-sandbox --user-data-dir=/var/www/chrome-user-data --dump-dom https://example.com

如果命令能正常输出网页DOM,说明系统层面配置没问题,问题出在PHP代码或库版本上。

关键说明

  • --headless=new是Chrome 112+推出的新无头模式,兼容性更好,避免旧模式的潜在bug
  • 显式指定--user-data-dir彻底规避默认目录的权限问题,同时让--no-crashpad参数能正确生效
  • 必须确保用户数据目录的所有者和权限完全匹配www-data用户,否则仍会出现权限报错

内容的提问来源于stack exchange,提问作者Jon Hulka

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 08:52:27