本篇介绍云服务器上 O2OA 平台 登录页验证码无法显示的排查与解决。问题原因是服务器缺少字符集与字体支持,验证码组件调用本地字体时找不到 libfreetype 相关库而失败。文中说明如何通过 yum 安装中文语言包、glibc-common 与 fontconfig 并设置中文字符集,同时给出 Debian、RHEL、SUSE 等发行版的对应安装命令,便于按系统类型选择。
在阿里云、华为云上生成的云主机上安装 o2server 服务器,安装后可以正常启动,但是在登录页面会出现验证码无法显示的错误。
导致验证码无法正常显示的原因是 o2server 服务器底层使用 kaptcha 项目来实现图片验证码,执行过程中使用了本地的 font,需要调用到服务器上的字符集管理。此时服务器上由于没有安装字符集管理会发生调用失败:
提示无法调用 libfreetype.so.6
一般云服务器上都是最小安装,需要我们手工安装字符集管理,可以在服务器上运行以下命令:
yum install -y kde-l10n-Chinese
yum install -y glibc-common
yum install -y fontconfig
localedef -c -f UTF-8 -i zh_CN zh_CN.UTF-8
yum install -y kde-l10n-Chinese // 安装中文语言包。
yum install -y glibc-common //glibc-common 包包括 GNU libc 库的通用二进制文件,以及国家语言支持。
yum install -y fontconfig // 管理系统安装的字体,根据应用程序的字体配置 localedef -c -f UTF-8 -i zh_CN zh_CN.UTF-8 // 设置中文字符集
Tips:安装 kaptcha 字库后如果还是报错,请检查是否已经安装了其他字库(如 simplecaptcha)引起冲突。
以上语言包并非必须安装,最简情况下仅安装 fontconfig 即可,这里也给出其他 linux 版本的安装方法:
Debian/Ubuntu/Mint:
sudo apt-get install libfreetype6 fontconfig
RHEL/CentOS/Fedora:
yum install freetype fontconfig
SLES/OpenSUSE:
zypper install libfreetype6 fontconfig
相关问题讨论
windows 环境下启动失败 Exception: can not define o2server base directory.
导致验证码无法正常显示的原因是 o2server 服务器底层是使用 kaptcha 项目来实现图片验证码的,在执行过程中使用了本地的 font,需要调用到服务器上的字符管理,此时服务器上由于没有安装字符集管理会发生调用失败:
查看原帖讨论 · 12,273 次浏览
关于运行 o2server 报 NoClassDefFoundError: org/apache/logging/log4j/core/Layout 的问题
yum install -y kde-l10n-Chineseyum install -y glibc-commonyum install -y fontconfiglocaledef -c -f UTF-8 -i zh_CN zh_CN.UTF-8
查看原帖讨论 · 11,173 次浏览
o2oa 安装 sqlserver2008r2后无法启动
在阿里云华为云上生成的云主机上安装 o2server 服务器,安装后可以正常启动,但是在登陆页面会出现验证码无法显示的错误
查看原帖讨论 · 10,075 次浏览
相关内容