如何在AlmaLinux系统上的Chrome-Php无头模式下渲染非拉丁字符?
解决AlmaLinux无头Chromium非拉丁字符显示异常问题
核心原因
AlmaLinux默认预装的字体包不完整,无头Chromium运行时无法找到对应非拉丁字符的渲染字体,最终导致字符显示为方框或空白。
具体修复步骤
1. 安装对应语言的字体包
针对中文等东亚字符,执行以下命令安装常用字体:
sudo dnf install -y wqy-microhei-fonts wqy-zenhei-fonts
如果需要支持其他非拉丁字符(如阿拉伯文、俄文),可安装对应语言字体包:
# 阿拉伯文字体 sudo dnf install -y arphic-ukai-fonts # 俄文及通用西文字体 sudo dnf install -y liberation-mono-fonts liberation-sans-fonts liberation-serif-fonts
2. 安装通用字体 fallback 包
确保系统具备通用字体 fallback 机制,覆盖更多罕见字符:
sudo dnf install -y gnu-free-fonts-common gnu-free-sans-fonts gnu-free-serif-fonts
3. 配置Chrome-Php强制加载指定字体
在Chrome-Php的启动参数中明确指定默认字体,示例代码片段:
$chrome = new Chrome\Chrome([ 'binary' => '/usr/bin/chromium-browser', 'arguments' => [ '--headless=new', '--no-sandbox', '--disable-gpu', '--default-font-family="WenQuanYi Micro Hei"', '--default-fixed-font-family="WenQuanYi Micro Hei Mono"', '--font-render-hinting=medium' ] ]);
4. 验证字体安装状态
执行以下命令检查字体是否成功安装:
fc-list | grep "WenQuanYi"
输出对应字体路径即表示安装生效。
额外注意事项
- 若网页指定了特定字体,需确保该字体已在AlmaLinux系统中安装;
- 不要添加
--no-font-config启动参数,否则会禁用系统字体配置; - 部分场景下需清理Chromium缓存,缓存路径通常为
~/.config/chromium/。
内容的提问来源于stack exchange,提问作者dc09
相关产品推荐
相关产品推荐

