如何在服务器上安装浏览器?

在服务器上安装浏览器通常用于自动化测试、网页抓取(如使用 Puppeteer、Selenium)、生成截图或 PDF 等场景。由于大多数服务器运行的是无图形界面的 Linux 系统(如 Ubuntu、CentOS),我们需要安装无头浏览器(Headless Browser) 或配置浏览器以在无 GUI 环境下运行。

以下是几种常见的方法,以 Ubuntu/Debian 为例:


方法一:安装 Chrome / Chromium 并启用无头模式

1. 更新系统包

sudo apt update

2. 安装 Chromium 浏览器

sudo apt install -y chromium-browser

或者安装 Google Chrome(非开源,但功能更完整):

# 下载 Google Chrome 的 .deb 包
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb

# 安装
sudo dpkg -i google-chrome-stable_current_amd64.deb

# 如果有依赖问题,修复
sudo apt --fix-broken install

3. 验证安装

google-chrome --version
# 或
chromium-browser --version

4. 使用无头模式运行(无需图形界面)

google-chrome --headless=new --disable-gpu --screenshot --no-sandbox https://example.com

参数说明:

  • --headless=new:启用新版无头模式(推荐)
  • --disable-gpu:某些系统需要禁用 GPU(尤其在旧版本)
  • --screenshot:自动截图保存为 screenshot.png
  • --no-sandbox:在服务器环境中常需关闭沙盒(注意安全风险)

方法二:配合 Puppeteer 使用(Node.js)

Puppeteer 是一个控制 Chrome/Chromium 的 Node.js 库,非常适合自动化任务。

1. 安装 Node.js

curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
sudo apt-get install -y nodejs

2. 创建项目并安装 Puppeteer

mkdir browser-test && cd browser-test
npm init -y
npm install puppeteer

注意:Puppeteer 默认会下载一个兼容的 Chromium,无需手动安装。

3. 编写测试脚本(test.js

const puppeteer = require('puppeteer');

(async () => {
  const browser = await puppeteer.launch({
    headless: true,
    args: ['--no-sandbox', '--disable-setuid-sandbox']
  });
  const page = await browser.newPage();
  await page.goto('https://example.com');
  await page.screenshot({ path: 'example.png' });
  await browser.close();
})();

4. 运行脚本

node test.js

方法三:使用 Firefox(可选)

安装 Firefox

sudo apt install -y firefox

无头运行示例

firefox --headless --screenshot screenshot.png https://example.com

可结合 Selenium 使用。


常见问题与解决方案

1. 缺少依赖库

如果启动失败,可能缺少字体或共享库:

sudo apt install -y libx11-xcb1 libnss3 libasound2 libatk-bridge2.0-0 libgtk-3-0 libgbm-dev

2. 权限和沙箱问题

在 Docker 或某些服务器中,建议添加 --no-sandbox--disable-dev-shm-usage

google-chrome --headless=new --no-sandbox --disable-dev-shm-usage --screenshot https://example.com

3. 中文显示乱码

安装中文字体:

sudo apt install -y fonts-wqy-zenhei fonts-wqy-microhei

总结

目的 推荐方案
自动截图/PDF Chrome + --headless
网页自动化 Puppeteer + Chromium
兼容性测试 Selenium + Chrome/Firefox
轻量级需求 直接使用 chromium-browser

✅ 提示:生产环境中建议使用 Docker 封装浏览器环境,避免依赖冲突。例如使用官方镜像:

docker run --rm -v $(pwd):/workdir zenika/alpine-chrome:latest --headless --screenshot https://example.com

如有具体用途(如爬虫、测试等),可以进一步优化配置。欢迎补充你的使用场景!

未经允许不得转载:ECLOUD博客 » 如何在服务器上安装浏览器?