zoukankan      html  css  js  c++  java
  • [.Net跨平台]部署DTCMS到Jexus遇到的问题及解决思路--验证码

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

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

    安装方法

    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,验证码问题解决!

  • 相关阅读:
    python—pandas及DataFrame
    python模块以及import 报错:ImportError: No module named myModule
    第二周开课测试
    第二周开课博客
    javaweb第二课
    javaweb第一课
    大道至简.读后感
    读后感2
    读后感.1
    测试
  • 原文地址:https://www.cnblogs.com/wpycs/p/8127139.html
Copyright © 2011-2022 走看看