码迷,mamicode.com
首页 > Web开发 > 详细

[.Net跨平台]部署DTCMS到Jexus遇到的问题及解决思路--验证码

时间:2017-12-27 19:37:18      阅读:214      评论:0      收藏:0      [点我收藏+]

标签:重启   分析   window   load   color   str   configure   roman   ref   

上一篇博客我们已经基本完成了部署工作,目前发现了验证码出现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,验证码问题解决!

[.Net跨平台]部署DTCMS到Jexus遇到的问题及解决思路--验证码

标签:重启   分析   window   load   color   str   configure   roman   ref   

原文地址:https://www.cnblogs.com/wpycs/p/8127139.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!