PhantomJS 是一款可编程的无头浏览器,内置 JS 解析引擎和渲染引擎,但不显示页面,常用于页面自动化测试、网页监控、抓取 JS 渲染内容和报表截图。不过需要提前说明,PhantomJS 早在 2018 年就已被作者宣布停止维护,底层 WebKit 和 OpenSSL 等依赖的安全漏洞没人修复,JS 引擎停留在较老水平,对 Promise 支持不完整,更不支持 async/await。如果项目允许,建议优先考虑 Chrome Headless、Puppeteer 或 Playwright。若因老系统、老框架必须使用,可按下面步骤安装配置。
先确认系统架构,执行 uname -m,如果是 x86_64 可直接下载官网对应版本,官网地址为 phantomjs.org/download.html。
下载 phantomjs-2.1.1-linux-x86_64.tar.bz2 到服务器,例如放到 /usr/local/src 目录。
bz2 格式需要先安装解压工具,执行 yum -y install bzip2,再用 bzip2 -d phantomjs-2.1.1-linux-x86_64.tar.bz2 转成 tar,最后用 tar xvf phantomjs-2.1.1-linux-x86_64.tar -C /usr/local/ 解压到指定目录。
也可以直接执行 tar -xjvf phantomjs-2.1.1-linux-x86_64.tar.bz2 一步解压。
编辑 /etc/profile,在末尾追加 export PATH=$PATH:/usr/local/phantomjs-2.1.1-linux-x86_64/bin,保存后执行 source /etc/profile 使配置生效。
如果不想改环境变量,可以建立软链接,执行 ln -s /usr/local/phantomjs-2.1.1-linux-x86_64/bin/phantomjs /usr/bin/phantomjs,之后就能像系统命令一样使用。
给可执行文件补权限,执行 chmod 755 phantomjs,否则 Selenium 等程序可能报 The driver is not executable。
验证安装,执行 phantomjs --version,能返回版本号说明基本可用。
最常见的报错是 phantomjs: error while loading shared libraries: libfontconfig.so.1: cannot open shared object file,CentOS 可执行 yum install fontconfig-devel 或 yum install fontconfig freetype2,Ubuntu 可执行 sudo apt-get install libfontconfig。
截图或导出图片时中文不显示,通常是缺少中文字体,可执行 yum install bitmap-fonts bitmap-fonts-cjk。
用 ldd /路径/phantomjs 查看缺失的动态库,缺什么补什么。部分老库在源里装不到,可能需要手动下载对应 so 文件放到 /usr/lib64 目录,再重新验证版本。
遇到 libpng 相关版本冲突时,要注意删除旧版 so 和 pkgconfig 文件,重新建立正确版本的软链接,并配置 LD_LIBRARY_PATH 和 PKG_CONFIG_PATH。
ARM64 服务器要特别留意,PhantomJS 自 2018 年不再维护,官方没有提供 linux/aarch64 的二进制包,可以考虑使用第三方 aarch64 包并设置 PHANTOMJS_BIN,或者改用无头 Chromium、Firefox。
使用 Selenium 时,可通过 executable_path 参数指定 phantomjs 可执行文件绝对路径,避免程序找不到驱动。
Ubuntu 系统也可尝试 sudo apt-get install phantomjs,CentOS 和 RHEL 需先执行 sudo yum install epel-release 再安装。
部分报表类软件内置了 PhantomJS 环境,无需额外安装,如果改用自定义安装,需要在对应配置文件中把可执行文件路径节点改成实际路径或 default。
生产环境建议限制并发数量,推荐不超过 5 个实例,防止内存溢出,用完及时调用 page.close 释放资源,并设置超时机制避免进程挂起,同时定期重启服务缓解内存泄漏,可用 Docker 隔离依赖环境。
进入 phantomjs 交互式命令行后,可用 phantom.exit() 退出,直接输入 exit() 会提示找不到变量。
![]()
Linux 安装 PhantomJS 的核心流程就是确认架构、下载解压、安装 fontconfig 等依赖、配置环境变量或软链接、最后用 phantomjs --version 验证。报错排查主要围绕可执行权限、缺失动态库、中文字体和架构不匹配四点展开。但考虑到它已长期停止维护,存在安全漏洞无人修复、现代 Web 标准支持差等问题,新项目更推荐使用 Chrome Headless、Puppeteer 或 Playwright,其中 Playwright 支持 Chromium、Firefox 和 Safari,自动等待机制对动态页面更友好。只有在维护老旧 CI 系统或依赖历史代码时,才建议继续保留 PhantomJS,并做好资源限制和容器隔离。
声明:所有来源为“聚合数据”的内容信息,未经本网许可,不得转载!如对内容有异议或投诉,请与我们联系。邮箱:marketing@think-land.com
包含研学创作(大纲)和研学创作(全文)
通过请求综述题目、指定文献ID集合、生成模式及学科名称,以流式方式返回生成的调研综述全文及引用的参考文献信息。
通过请求问题内容、学科名称及选题目的,返回包含中英文题目、推荐理由、多维度评分及相似文献的智能选题推荐结果。
通过自然语言请求,选择以流式或非流式方式返回模型生成的对话回复及相关的参考文献引用信息。
包含会议文献和会议文献详情