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

Ubuntu14.04下Facebook PHP WebDriver启动失败求助

解决Facebook PHP WebDriver在Cloud9 Ubuntu 14.04环境中的Session创建失败问题

从你给出的错误日志和Selenium服务日志来看,核心问题在于Selenium无法找到或启动ChromeDriver服务,再加上Cloud9是无图形界面的VDS环境,必须启用浏览器无头模式才能正常运行。下面是一步步的解决方案:

1. 安装Chrome浏览器与对应版本的ChromeDriver

Cloud9默认没有预装Chrome浏览器和ChromeDriver,这是导致Selenium无法创建Chrome会话的主要原因:

步骤1:安装Chromium浏览器(Chrome的开源版本,适合云端环境)

sudo apt-get update
sudo apt-get install -y chromium-browser

步骤2:安装匹配版本的ChromeDriver

首先查看你安装的Chromium版本:

chromium-browser --version

比如输出是Chromium 69.0.3497.81 Built on Ubuntu , running on Ubuntu 14.04,就需要下载对应版本的ChromeDriver(Selenium 3.12.0建议搭配ChromeDriver 2.41-2.45版本,可匹配多数Chromium 68-70版本):

# 下载对应版本的ChromeDriver
wget https://chromedriver.storage.googleapis.com/2.41/chromedriver_linux64.zip
unzip chromedriver_linux64.zip
# 将ChromeDriver移到系统PATH目录,并赋予执行权限
sudo mv chromedriver /usr/local/bin/
sudo chmod +x /usr/local/bin/chromedriver

验证ChromeDriver是否可用:

chromedriver --version

如果能正常输出版本信息,说明安装成功。

2. 修改PHP代码,启用Chrome无头模式并配置浏览器选项

因为Cloud9没有图形界面,必须启用Chrome的无头模式,同时可以指定浏览器路径确保Selenium能找到它:

use Facebook\WebDriver\Remote\RemoteWebDriver;
use Facebook\WebDriver\Remote\DesiredCapabilities;
use Facebook\WebDriver\Chrome\ChromeOptions;

// 配置Chrome选项
$options = new ChromeOptions();
// 启用无头模式,禁用GPU加速,关闭沙箱(云端环境必需)
$options->addArguments([
    '--headless',
    '--disable-gpu',
    '--no-sandbox',
    '--window-size=1920,1080' // 设置窗口尺寸,避免部分页面布局异常
]);
// 指定Chromium浏览器的路径(防止Selenium自动检测失败)
$options->setBinary('/usr/bin/chromium-browser');

// 整合到Capabilities中
$capabilities = DesiredCapabilities::chrome();
$capabilities->setCapability(ChromeOptions::CAPABILITY, $options);

// 创建WebDriver会话
$driver = RemoteWebDriver::create(
    'http://localhost:4444/wd/hub',
    $capabilities
);

3. 重启Selenium Server并指定ChromeDriver路径(可选,但更稳妥)

虽然我们已经把ChromeDriver放到了系统PATH中,但有时候Selenium可能还是无法自动检测到,启动Selenium时可以手动指定ChromeDriver路径:

java -jar selenium-server-standalone-3.12.0.jar -Dwebdriver.chrome.driver=/usr/local/bin/chromedriver

错误原因复盘

  • Cloud9默认没有预装Chrome浏览器和ChromeDriver,Selenium需要ChromeDriver作为中间件驱动Chrome,找不到它就无法创建会话;
  • 云端VDS环境没有图形界面,Chrome必须以无头模式启动,否则会因无法渲染图形而崩溃,导致会话创建失败。

按照上面的步骤操作后,应该就能正常运行Facebook PHP WebDriver的示例代码了。

内容的提问来源于stack exchange,提问作者mr.incredible

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 03:59:17