Wednesday, April 24, 2024

使用Jexus+Mono在CentOS上搭建ASP.net Web服務器

如何搭建asp.net運行環境,我相信很多人會想到使用Windows Server系統和IIS來搭建,不可否認,asp.net是微軟出的東西,當然用微軟的系統搭建最合適了。如果你又想使用asp.net,又想使用Linux,那麼是不是就行不通了呢?答案當然是否定的。因為我們有Mono,有了Mono,asp.net就可以運行在非Windows系統下了。

什麼是Mono:Mono是.NET Framework 的一種開源實現。Mono項目將使開發者用各種語言(C#,VB.NET等)開發的.NET應用程序,能在任何Mono支持的平台上運行, 包括Linux, Unix。Mono項目將使大家能開發出各種跨平台的應用程序, 並能極大提高開源領域的開發效率。作為一個有機的.NET整體, 它包括一個C#編譯器, 一個公用語言運行時環境, 以及相關的一整套類庫,他甚至還包括IDE、調試工具和文檔瀏覽器。Mono項目的網址是:https://www.mono-project.com/

什麼是Jexus:Jexus 是一款跨平台的WEB服務器力作,它功能強大,操作簡單,具有廣泛的適應性和良好的實用性。Jexus 是Linux/Unix平台真正意義上的ASP.NET WEB服務器,是基於Linux/Unix平台建設ASP.NET網站的必然選擇和最優方案!Jexus 內置安全監測與自動防控功能,能夠為各類網站提供更多的安全保障。官方社區:https://www.jexus.org/https://www.linuxdot.net/

一、更新系統

yum –y update

二、安裝Mono源碼安裝需要的庫

yum -y install gcc gcc-c++ bison pkgconfig glib2-devel gettext make libpng-devel libjpeg-devel libtiff-devel libexif-devel giflib-devel libX11-devel freetype-devel fontconfig-devel cairo-devel

三、安裝Mono需要的GDI+兼容API的庫Libgdiplus

cd /usr/local/src/

wget http://download.mono-project.com/sources/libgdiplus/libgdiplus-2.10.tar.bz2

tar -jxvf libgdiplus-2.10.tar.bz2

cd libgdiplus-2.10

./configure –prefix=/usr

make

make install

四、安裝 mono

cd /usr/local/src/

wget http://download.mono-project.com/sources/mono/mono-2.10.9.tar.bz2

tar -jxvf mono-2.10.9.tar.bz2

cd mono-2.10.9

./configure –prefix=/usr

make

make install

輸入 mono -V 如有mono版本信息,則安裝成功.

如果是64位版本的CentOS,在後續安裝好Jexus 5,啟動的時候會發生以下錯誤:

Sender: jws.exe, Sender TypeName: AppDomain
Exception Source: jws, TargetSite Name: A
Message is:
An exception was thrown by the type initializer for Mono.Unix.Native.Stdlib
StackTrace is:
at A.G.A (System.String[] A) [0x00000] in :0
IsTerminating: True

建議你運行下命令ldconfig,建議大家在安裝mono後,都 ldconfig一下 。(ldconfig命令的用途,主要是在默認搜尋目錄(/lib和/usr/lib)以及動態庫配置文件/etc/ld.so.conf內所列的目錄下,搜索出可共享的動態鏈接庫(格式如前介紹,lib*.so*),進而創建出動態裝入程序(ld.so)所需的連接和緩存文件.緩存文件默認為/etc/ld.so.cache,此文件保存已排好序的動態鏈接庫名字列表. )

另外有一點也非常重要,要在編譯Mono的是指定安裝到/usr(./configure –prefix=/usr),如果安裝到一個系統根本”不了解”的文件夾,僅ldconfig都不行,還要在/etc/ld.so.conf文件或/etc/ld.so.conf.d 中添加路徑後再 ldconfig才行呢。

ldconfig幾個需要注意的地方!

1. 往/lib和/usr/lib裡面加東西,是不用修改/etc/ld.so.conf的,但是完了之後要調一下ldconfig,不然這個library會找不到

2. 想往上面兩個目錄以外加東西的時候,一定要修改/etc/ld.so.conf,然後再調用ldconfig,不然也會找不到

比 如安裝了一個mysql到/usr/local/mysql,mysql有一大堆library在/usr/local/mysql/lib下面,這時就 需要在/etc/ld.so.conf下面加一行/usr/local/mysql/lib,保存過後ldconfig一下,新的library才能在程 序運行時被找到。

3. 如果想在這兩個目錄以外放lib,但是又不想在/etc/ld.so.conf中加東西(或者是沒有權限加東西)。那也可以,就是export一個全局變 量LD_LIBRARY_PATH,然後運行程序的時候就會去這個目錄中找library。一般來講這只是一種臨時的解決方案,在沒有權限或臨時需要的時 候使用。

4. ldconfig做的這些東西都與運行程序時有關,跟編譯時一點關係都沒有。編譯的時候還是該加-L就得加,不要混淆了。

5. 總之,就是不管做了什麼關於library的變動後,最好都ldconfig一下,不然會出現一些意想不到的結果。不會花太多的時間,但是會省很多的事

五、安裝Jexus

Jexus安裝非常簡單,僅僅就是一個複製、粘帖和註冊全局程序集的過程。
注意:以下所有操作請用root身份。

wget http://www.linuxdot.net/down/jexus-5.3.1.tar.gz
tar -zxvf jexus-5.3.1.tar.gz
cd jexus-5.3.1
sudo ./install

六、運行測試

複製完Jexus的文件後,Jexus就可以正常工作了,甚至連進一步的配置也完全不需要。
強調:如果你服務器安裝有其它的WEB服務器,而且該服務正在運行,請停止它,以免造成端口衝突而造成Jexus無法啟動。

如果是最新安裝,請首先建立一個默認的網站文件夾:/var/www/default,並在裡面放一個首頁文件,如index.htm或default.htm
進入jexus工作文件夾,啟動jexus,命令如下:
cd /usr/jexus
sudo ./jws.start
啟動後,請嘗試訪問一下這個網站,看看是否能看到你放的首頁或者jexus的歡迎頁,網址是:“http://服務器IP地址”或者“http://服務器IP地址/info”。

1、配置站點

使用WinSCP 訪問服務器(大家不必拘泥,你也可以搭建一個FTP來進行上傳)
打開/usr/jexus/siteconf
在裡面有個默認的default文件一個站點對應一個配置文件(注意大小寫)
配置文件詳細說明

2、控制站點

使用putty連接服務器
cd /usr/jexus
./jws start 剛才你添加的配置文件

七、配置,具體參考Jexus 自帶Readme文件

讓jexus能夠讀取中文亂碼文件名
1、安裝GBK等字符集: 步驟一:修改:/var/lib/locales/supported.d/local文件,添加一行,內容是“zh_CN GBK”。(當然,還可以加上“zh_CN GB18030”等); 步驟二:運行命令 sudo locale-gen 2、在jws.start和jws.restart兩個文件中,添加一個環境變量:“export ONO_EXTERNAL_ENCODINGS=”gbk:gb18030″”
註:以上方法適用於jexus 5.3.1

參考文章:
32和64位的CentOS 6.0下 安裝 Mono 2.10.8 和Jexus 5.0
使用Jexus+Mono在FreeBSD上搭建asp.net web服務器

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.