• 部署DTCMS到Jexus遇到的问题及解决思路--验证码


    上一篇博客我们已经基本完成了部署工作,目前发现了验证码出现500错误,分析其代码,我们可以看到验证码使用的是System.Drawing命名空间下的类库, GDI+ 位图,这个在肯定是平台相关的,所以我们可以搜索GDI+mono来看有无解决方案。

    通过搜索引擎,我们可以找到通过安装GDI+兼容API的库Libgdiplus可以实现GDI+功能。

    安装方法

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    cd /usr/local/src/
    #通过访问http://download.mono-project.com/sources/libgdiplus/获取libgdiplus最新的版本
    wget http://download.mono-project.com/sources/libgdiplus/libgdiplus-4.2.tar.gz
    #解压缩
    tar -zxvf libgdiplus-4.2.tar.gz
    cd libgdiplus-4.2
    #注意可能会提示缺少gcc或其他的组件,安装后重新执行即可
    ./configure --prefix=/usr
    make
    make install

    重启Jexus服务,验证码可以显示了

    仔细观察,和windows下验证码对比可以发现验证码字母显示不全,通过分析代码可以看到

    //字体列表,用于验证码 
    string[] font = { "Times New Roman", "Verdana", "Arial", "Gungsuh", "Impact" };

    验证码使用了以上字体,而Linux中未安装这些字体,所以我们需要安装字体,可参考https://www.javawind.net/p130 安装字体,最后重启Linux,验证码问题解决!

  • 相关阅读:
    MySQL 第四天
    MySQL 第三天
    MySQL第二天
    MySQL第一天
    Day27-28 基础加强
    Day24-26 项目练习(图书商城)
    Day23 ajax
    Day22 文件上传下载和javaMail
    Day21 过滤器(Filter)
    小轮播图
  • 原文地址:https://www.cnblogs.com/jjg0519/p/8471491.html
Copyright © 2020-2023  润新知