Windows中的.Net服務移植到Centos

【移植說明】:

原平臺:Windows Server 2008 R2 Enterprise ;IIS

目標平臺:Centos6.5

移植對象:.Net服務

移植方式:在Centos6.5上安裝Mono和Jexus 以支持.Net服務

一.安裝Mono

1.安裝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

2.安裝Mono需要的GDI+兼容API的庫Libgdiplus

cd到你想下載源碼的位置,一般我們cd到/usr/local/src/下

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

3.安裝mono

cd /usr/local/src/

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

tar -jxvf mono-2.10.8.tar.bz2

cd mono-2.10.8

./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 <filename unknown>: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 5.0

1、下載: 
下載地址是:http://www.linuxdot.net/down/jexus-5.0.1.tar.gz

wget http://www.linuxdot.net/down/jexus-5.0.1.tar.gz

2、解壓: 
tar -zxvf jexus-5.0.tar.gz

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

   1) 建立jexus安裝文件夾(一般爲/etc/jws/),我安裝到/usr/jexus/ : 
      sudo mkdir /usr/jexus/

   2) 把解壓所得到的文件及文件夾全部複製或移動到 /etc/jws 這個文件夾中 
      如: sudo mv * /usr/jexus/

   3) 將 jws.regsvr、jws.start、jws.restart、jws.stop 設爲可執行 
   4) 註冊全局程序集(*非常重要*) 
      進入安裝jexus目標文件夾(cd /usr/jexus/),然後運行: 
      sudo ./jws.regsvr

三、運行測試 
    複製完Jexus的文件後,Jexus就可以正常工作了。 
    所以,如果你的系統只要mono已經成功安裝,jexus就可以直接使用,甚至連進一步的配置也完全不需要。

    如果是升級安裝,你只需要用jws.start啓動JWS,Jexus就可以正常工作了,如果不能正常工作,常常是新版本的配置方式可能有變,你可以查查jws.conf等配置文件。

    強調:如果你服務器安裝有其它的WEB服務器,而且該服務正在運行,請停止它,以免造成端口衝突而造成Jexus無法啓動。

    如果是全新安裝,請首先建立一個默認的網站文件夾:/var/www/default 
    然後在Jexus工作文件夾(/usr/jexus/)中執行jws.start命令(需要root身份),啓動jexus。 
    詳細Jexus的配置可以看Jexus中的readme.txt文件

    測試方法:

    1.在jexus-5.0.1/siteconf 中放的是網站的配置文件 以文件名標示一個網站,文件名不能有空格,默認會有一個default



   2.default文件 最重要的配置就是port和root,port端口請確認沒有被佔用,這裏我們設置爲8082,root爲虛擬目錄到真實網站目錄的映射,將你的網站放到你真實目錄下面,注意中間要有空格。


 3.新建一個aspx測試文件,myTest.aspx 放到/var/wwww/***下面 內容爲<%="this is a Asp.net test for CentOS!"%>

 4.重啓Jexus  jws.restart 方法

 5.訪問:ip:8082/myTest.aspx,成功!


 參考文章:http://www.cnblogs.com/shanyou/archive/2012/01/07/2315982.html



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章