[.Net跨平臺]部署DTCMS到Jexus遇到的問題及解決思路--驗證碼
阿新 • • 發佈:2017-12-27
遇到 .net lib 服務 解壓 代碼 新的 列表 tar
上一篇博客我們已經基本完成了部署工作,目前發現了驗證碼出現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遇到的問題及解決思路--驗證碼