Centos 7.0 安裝Mono 3.4 和 Jexus 5.6
2013-07-26 寫過一篇《CentOS 6.3下 安裝 Mono 3.2 和Jexus 5.4》,CentOS 7在CentOS 6的基礎上有很大的調整,本文是這篇文章的更新,主要介紹CentOS 7下安裝Mono 3.4 和 Jexus 5.6。
CentOS是一個基於RHEL的Linux發行版,其目的是為了提供一套免費與自由的企業等級Linux發行版。CentOS的名稱來自於「Community ENTerprise Operating System」,從名稱便可以知道這是一套由社群主導、並以企業級使用者為主要目標的作業系統。
目前CentOS是網頁伺服器用途的主機中最廣為使用的一套Linux發行版。根據統計,目前大約有30%的Linux伺服器使用CentOS。許多書籍、網站在介紹Linux的操作方式時,也會援引CentOS作為操作介面。通常CentOS都會在RHEL推出新版本之後,經過一小段時間的修改與測試之後再推出新的版本,而其版本編號大多也會跟隨RHEL的版本編號,例如目前最新版本的CentOS 7,其相對應的RHEL版本便是RHEL 7。
CentOS 7 有很多新特性:
- 包含 Kernel 3.10 版本,支援 swap 記憶體壓縮可保證顯著減少 I/O 並 提高效能,採用 NUMA (統一記憶體訪問) 的排程和記憶體分配,支援 APIC (高階程式中斷控制器) 虛擬化,全面的 DynTick 支援,將核心模組列入 黑名單,kpatch 動態核心補丁 (技術預覽) 等等
- 引進網路分組技術作為鏈路聚集的捆綁備用方法,對 NetworkManager 進行大量改進,提供動態防火牆守護程序 firewalld,加入 DNSSEC 域名系統安全擴充套件,附帶 OpenLMI 用來管理 Linux 系統提供常用的基礎 設施,引進了可信網路連線功能 (技術預覽)等。
- 引入 Linux 容器 Docker
- 編譯工具鏈方面,包含 GCC 4.8.x、glibc 2.17、GDB 7.6.1。
- MariaDB 5.5、PostgreSQL 9.2
- 在系統和服務上,使用 systemd 替換了 SysV
- 引入 Pacemaker 叢集管理器,同時使用 keepalived 和 HAProxy
Jexus web server for linux 是一款基於.NET相容環境,運行於Linux/unix作業系統之上,以支援ASP.NET為核心功能的高效能WEB伺服器,用於替換Apache+mod_mono、Nginx+FastCgi 方案執行ASP.NET,最新的5.6版本已經支援OWIN協議。Jexus不但具有跨平臺ASP.NET伺服器這樣的標誌性特徵,同時還擁有核心級的安全監控、入侵檢測、URL重寫、無檔案路由等一系列重要功能和專有特性。
Mono Xsp 和Jexus有什麼區別呢:
- 速度方面: 對於ASP.NET網頁,大壓力訪問時Jexus處理速度更快; 對於靜態檔案,Jexus遠快於XSP,而且對磁碟的要求和影響小N倍;
- 功能方面: XSP是以ASP.NET測試工作開發的,功能單調,而Jexus是作為生產環境使用的真實的WEB服務開發的,功能全面,因此,xsp與Jexus在功能上沒有可比性
- 穩定性方面: Jexus有良好的容錯和自動糾錯能力,可以長期不間斷執行,而XSP是單程序程式,沒有任何自動糾錯機制,無法保持不間斷執行。
- 安全性方面: Jexus有關鍵的入侵檢測功能,XSP沒有任何安全檢測功能,沒有可比性;
- 多站點支援: XSP支援一站,Jexus支援任意多網站。
Jexus for linux 有如下特點:
- 支援多種作業系統:Jexus最初的設計目標是“跨平臺的ASP.NET WEB伺服器”,由於在Windows系統上,IIS已經是ASP.NET的優秀平臺,所以,當前的Jexus以支援Linux和FreeBSD等非Windows系統為主要設計目標。正因為這個原因,就Linux/FreeBSD等平臺的ASP.NET建設而言,Jexus具有特別重大的意義。
- 高效能:“高效能”是Jexus的重要的設計目標。雖然Jexus基於Mono環境執行,但Jexus並非全部由Mono的.NET元件構成,對於涉及效能的關鍵程式碼,Jexus非常巧妙地大量採用了Linux/Unix本身的優秀特性,從程式碼層保證了Jexus的效能優勢。
同時,Jexus的框架特徵也為高效能提供了基礎保證。Jexus不象XSP那樣,純HTML也需要經過ASP.NET處理,更不象Apache和Nginx等伺服器,需要通過外掛的形式間接地對ASP.NET進行支援,Jexus把HMTL靜態檔案處理模組、ASP.NET處理模組、靜態檔案快取記憶體機制、epoll/poll資料傳輸機制等進行了高度整合,從架構本身入手,最大限度地提高WEB伺服器的處理能力和傳輸速度。 - 安全性:Jexus核心含有安全監控機制,絕大多數惡意訪問在進入網站前就會被Jexus直接禁止,這是Jexus有別於其它WEB伺服器的又一大特色,所以,Jexus特別適合那些對安全要求較高的企業網站或政府網站使用。
- 穩定性:從執行機制而言,Jexus系統中,有專門檢測工作程序執行狀態的管理單元,任何一個程序退出或者任何一個ASP.NET網站應用程式域退出,被會被管理單元發現並得到重啟,從而保證了Jexus能夠7*24小時不間斷工作;從程式本身而言,Jexus程式程式碼力求簡潔,BUG很少,同時,Jexus的每個版本在正式釋出之前,都要經過嚴格的壓力測試,影響穩定性的因素,幾乎在正式釋出之前即已被全部排除。
- 功能強大:Jexus支援URL重寫,支援多目標伺服器的反向代理,支援PHP,支援GZIP壓縮傳輸,並且,可以利用不同埠、不同虛擬路徑、不同域名設定任意數量的網站,這些功能要素,表明了Jexus是一款功能完整而強勁的WEB伺服器。
- 安裝、配置、操作極為簡單,服務社群化,各種問題能得到快速的處理,有良好的後續服務支撐能力。
一、更新系統,安裝編譯環境,為編譯Mono原始碼做準備。
1、 更新系統
yum –y update
2、安裝Mono原始碼安裝需要的庫
yum -y install wget glib2-devel libtiff libtiff-devel libjpeg libjpeg-devel giflib giflib-devel libpng libpng-devel libX11 libX11-devel freetype freetype-devel fontconfig fontconfig-devel libexif libexif-devel gcc-c++ gettext unzip zip bzip2 bzip2-devel curl-devel gtk2-devel boost-devel
- 3、安裝Mono需要的GDI+相容API的庫Libgdiplus
- git clone git://github.com/mono/libgdiplus.git
- cd libgdiplus
- ./autogen.sh --prefix=/usr
- make
- make install
- 二、原始碼安裝Mono 3.4
- 下載後上傳到/usr/local/src
-
tar -zxvf mono-3.4.0.tar.gz
./configure --prefix=/usr --libdir=/usr/lib64
這裡加上--libdir=/usr/lib64 ,主要是P/Invoke ,具體參考 MONO x64 amd_x64
-
make
make install
-
輸入 mono -V 如有mono版本資訊,則安裝成功.
-
如果是64位版本的CentOS,建議你執行下命令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才行呢。
三、安裝Jexus 5.5
- 從5.3.1版本開始,Jexus的安裝過程簡化了,內建了兩個新的指令碼,它們分別是“install”和“upgrade”,對應原來的“安裝”和“升級”,將Jexus的安裝過程自動化了。jexus本身的安裝和升級方式並沒有發生更多的變化,因此對於已經習慣於5.3.1之前版本的使用方式的使用者,你們仍然可以採用之前的安裝方式。
- wget linuxdot.net/down/jexus-5.6.1.tar.gz
- tar -zxvf jexus-5.6.1.tar.gz
- cd jexus-5.6.1
- ./install
安裝完成~!!!在執行install指令碼時,jexus預設是安裝到/usr/jexus/中,如果想安裝到其他目錄,可以在執行該指令碼時增加一個目錄的引數(比如 sudu install /usr/local/jexus/)。對於升級就是執行upgrade指令碼。
啟動jexus 檢查是否正常了
啟動 /usr/jexus/jws start
停止 /usr/jexus/jws stop
重啟 /usr/jexus/jws restart
自此,使用 http://你的IP/info即可驗證Jexus是否啟動
五、新增為系統服務,隨系統啟動
cd /etc/init.d/ vi jws
按i編輯模式,貼上下面內容
#!/bin/bash #chkconfig: 2345 80 05 #description:jws # . /etc/rc.d/init.d/functions case "$1" in start) echo "Jexus Start.." /usr/jexus/jws start ;; stop) echo "Jexus Stop.." /usr/jexus/jws stop ;; restart) echo "Jexus Restart" /usr/jexus/jws restart ;; status) /usr/jexus/jws status ;; *) exit 1 ;; esac exit $RETVAL
按ESC後,輸入:wq儲存檔案
把這個指令碼作為“服務”加入
chmod 766 jws
chkconfig --add jws
至此,JEXUS已跟隨系統啟動,可以reboot一下試試看
你也可以通過修改 /usr/jexus/siteconf 裡面的檔案,來修改站點配置。