CentOS是一個基於RHEL的Linux發行版,其目的是爲了提供一套免費與自由的企業等級Linux發行版。CentOS的名稱來自於「Community ENTerprise Operating System」,從名稱即可以知道這是一套由社區主導、並以企業級用戶爲主要目標的操做系統。html
目前CentOS是網頁服務器用途的主機中最廣爲使用的一套Linux發行版。根據統計,目前大約有30%的Linux服務器使用CentOS。許多書籍、網站在介紹Linux的操做方式時,也會援引CentOS做爲操做接口。一般CentOS都會在RHEL推出新版本以後,通過一小段時間的修改與測試以後再推出新的版本,而其版本編號大多也會跟隨RHEL的版本編號,例如目前最新版本的CentOS 6,其相對應的RHEL版本即是RHEL 6。linux
Jexus web server for linux 是一款基於.NET兼容環境,運行於Linux/unix操做系統之上,以支持ASP.NET爲核心功能的高性能WEB服務器,用於替換Apache+mod_mono、Nginx+FastCgi 方案運行ASP.NET。Jexus不但具備跨平臺ASP.NET服務器這樣的標誌性特徵,同時還擁有內核級的安全監控、入侵檢測、URL重寫、無文件路由等一系列重要功能和專有特性。c++
Mono Xsp 和Jexus有什麼區別呢:git
Jexus for linux 有以下特色:github
本文是在Windows Azure雲平臺上 使用CentOS 6.3 + Mono 3.2 + Jexus 5.4 的安裝簡要教程:web
1、更新系統,安裝編譯環境,爲編譯Mono源碼作準備。Mono 3.2的源碼編譯要求系統中存在一個Mono 2.4以上的環境,因此咱們按照《32和64位的CentOS 6.0下 安裝 Mono 2.10.8 和Jexus 5.0》這篇文章編譯安裝完成2.10.8 環境,下面我簡要列一下:windows
一、 更新系統 瀏覽器
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
在執行yum 更新系統的時候就發生了以下錯誤:
--> Running transaction check ---> Package gc.x86_64 0:7.1-10.el6 will be installed ---> Package glibc-headers.x86_64 0:2.12-1.80.el6_3.5 will be installed --> Processing Dependency: kernel-headers >= 2.2.1 for package: glibc-headers-2. 12-1.80.el6_3.5.x86_64 --> Processing Dependency: kernel-headers for package: glibc-headers-2.12-1.80.e l6_3.5.x86_64 --> Finished Dependency Resolution Error: Package: glibc-headers-2.12-1.80.el6_3.5.x86_64 (updates) Requires: kernel-headers Error: Package: glibc-headers-2.12-1.80.el6_3.5.x86_64 (updates) Requires: kernel-headers >= 2.2.1 You could try using --skip-broken to work around the problem ** Found 1 pre-existing rpmdb problem(s), 'yum check' output follows: kernel-2.6.32-220.13.1.el6.x86_64 has missing requires of kernel-firmware >= ('0 ', '2.6.32', '220.13.1.el6')
解決方法:修改文件vi /etc/yum.conf 將exclude=kernel*前加註釋便可解決,此參數的意思是排除安裝或更新kernel開頭的軟件,而咱們安裝gcc須要依賴kernel相關的軟件glibc-headers-2.12-1.80.el6_3.5.x86_64 。
三、安裝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.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才行呢。
2、源碼編譯mono 升級到最新3.2 版本,我這裏用了Git方式安裝,從Mono的主幹上拉下來的代碼編譯後是3.3版本:
安裝前把mono所需的依賴包安裝好:
yum –y install build-essential automake autoconf libtool bison libglib2.0-dev libfreetype6-dev libfontconfig-dev gettext libgif-dev libtiff4-dev libpng12-dev libexif-dev libx11-dev libxft-dev libjpeg-dev
git clone git://github.com/mono/mono.git ./autogen.sh --prefix=/usr [要注意目標文件夾,必定要指定同一個地方,強烈建議用 --prefix=/usr 參數] make
編譯完後,進入安裝mono 2.10.8 的源文件夾,以管理員身份運行 「make uninstall」。
cd /usr/local/src/mono-2.10.8
sudo make uninstall
而後進入mono-3.2.0 目錄
sudo make install
運行mono -V命令就能夠看下下面的結果表示安裝成功:
3、安裝Jexus 5.4 :從5.3.1版本開始,Jexus的安裝過程簡化了,內置了兩個新的腳本,它們分別是「install」和「upgrade」,對應原來的「安裝」和「升級」,將Jexus的安裝過程自動化了。jexus自己的安裝和升級方式並無發生更多的變化,所以對於已經習慣於5.3.1以前版本的使用方式的用戶,大家仍然能夠採用以前的安裝方式。
wget http://www.linuxdot.net/down/jexus-5.4.tar.gz tar -zvxf jexus-5.4.tar.gz
cd jexus-5.4 sudo ./install
安裝完成~!!!在執行install腳本時,jexus默認是安裝到/usr/jexus/中,若是想安裝到其餘目錄,能夠在執行該腳本時增長一個目錄的參數(好比 sudu install /usr/local/jexus/)。對於升級就是執行upgrade腳本。
啓動jexus 檢查是否正常了
cd /usr/jexus
sudo ./jws start
看到了Jexus已經成功啓動的日誌,咱們還能夠經過瀏覽器來檢查下:http://mono.cloudapp.net/info
4、放一個網站上去測試下,我這裏放個小泥鰍的Mono兼容代碼版本上去,能夠從這裏獲取https://github.com/geffzhang/LoachsMono
使用VS編譯後經過Winscp 上傳到服務器,具體能夠參看《使用WinSCP軟件在windows和Linux中進行文件傳輸》。
訪問http://mono.cloudapp.net/ 就能夠看到咱們的成功了: