1. 程式人生 > >.net core Linux ( Centos 7 ) 下 驗證碼圖片顯示不出來, 或者亂碼

.net core Linux ( Centos 7 ) 下 驗證碼圖片顯示不出來, 或者亂碼

驗證碼圖片顯示不出來

在 Linux 命令列執行:

dotnet Web.dll  # dll檔名 自己換

(注意:不要用 nohup dotnet Web.dll 在後臺執行,後臺執行看不到異常)

再來訪問登入介面, 此時驗證碼看不到, Linux 下提示: “Unable to load shared library 'gdiplus'” .

#1. 安裝 glib-2.0
yum install libgnomeui-devel

#2. 安裝 libgdiplus
wget http://download.mono-project.com/sources/libgdiplus/libgdiplus-5.6.tar.gz
tar -zxf libgdiplus-5.6.tar.gz
cd libgdiplus-5.6
./configure --prefix=/usr
make
make install

的做法:

yum install autoconf automake libtool
yum install freetype-devel fontconfig libXft-devel
yum install libjpeg-turbo-devel libpng-devel giflib-devel libtiff-devel libexif-devel
yum install glib2-devel cairo-devel
git clone https://github.com/mono/libgdiplus
cd libgdiplus
./autogen.sh
make
make install
cd /usr/lib64/
ln -s /usr/local/lib/libgdiplus.so gdiplus.dll

安裝完, 再執行, 會發現驗證碼出來了, 但有亂碼:

驗證碼亂碼的解決

主要是解決字型問題。

在生成驗證碼的程式碼中, 關於字型的有一行:

string[] font = { "Times New Roman" };

所以先在  Windows 系統中找到:

複製到 Linux 中的 /usr/share/fonts/micro/ 下

mkdir /usr/share/fonts/micro/
cd /usr/share/fonts/micro/
# 字型檔案複製到這個資料夾, 略
fc-cache  #重新載入字型

再重新執行 dotnet Web.dll , 驗證碼正常了。