在阿里云华为云上生成的云主机上安装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