1、前言
網(wǎng)站的建設(shè)成都創(chuàng)新互聯(lián)公司專注網(wǎng)站定制,經(jīng)驗豐富,不做模板,主營網(wǎng)站定制開發(fā).小程序定制開發(fā),H5頁面制作!給你煥然一新的設(shè)計體驗!已為橡塑保溫等企業(yè)提供專業(yè)服務(wù)。
應(yīng)技術(shù)主管要求,為公司實現(xiàn)ASP.NET框架跨平臺運行于Linux服務(wù)器上。筆者讀書時候也學(xué)過C#,現(xiàn)在是一名運維工程師,工作跟C#開發(fā)并沒有半點關(guān)系,但看到C#可以跑在linux下,筆者還是非常高興的。
2、理論部分
-- mono
是指由Novell公司(由Xamarin發(fā)起,并由Miguel de lcaza領(lǐng)導(dǎo)的,一個致力于開創(chuàng)·NET在Linux上使用的開源工程。
-- Jexus(免費非開源)
即 Jexus Web Server,簡稱JWS,是Linux平臺上 的一款A(yù)SP.NET WEB服務(wù)器。它是 Linux、Unix、FreeBSD 等非Windows系統(tǒng)架設(shè) ASP.NET WEB 服務(wù)器的核心程序。
2.1、Jexus
2.1.1、Jexus主配置文件位置
配置文件的查找
find / -name jws.conf
一般顯示如下:
/usr/jexus/jws.conf
2.1.2、Jexus主配置文件
SiteLogDir=log #網(wǎng)站及Jexus系統(tǒng)日志存放目錄(必填,基于jws相對路徑) SiteConfigDir=siteconf #子配置文件存放目錄(必填,絕對路徑或相對jws.conf路徑) Runtime=v4.0.30319 #設(shè)定Jexus的.NET版本(可選) httpd.processes=1 #開啟進程數(shù)(可選,建議6-8核CPU一個進程,最大4進程) httpd.user=www-data #運行進程身份(可選,默認root) php-fcgi.set=/usr/bin/php-cgi,6 #逗號前指定php-cgi路徑,逗號后指定php進程數(shù)(可選PHP) CertificateFile=/xxxx/xx.crt #SSL證書路徑(可選) CertificateKeyFile=/xxxx/xx.key #SSL密鑰文件路徑(可選)
2.1.3、子配置文件
1)子配置文件路徑
SiteConfigDir=siteconf #主配置文件定義的絕對路徑或相對jws.conf路徑
注意:子配置文件名稱不能含空格
2)配置文件選項
port=80 #傾聽端口(必填) root=/ /var/www/www.cmdschool.org #網(wǎng)站跟目錄(必填) hosts=www.cmdschool.org #站點域名(默認網(wǎng)站只一個) addr=0.0.0.0 #端口傾聽地址 CheckQuery=false #關(guān)閉URL安全檢測 NoLog=true #禁用日志功能 NoFile=/index.aspx #沒文件首頁回應(yīng) Keep_Alive=false #關(guān)閉長連接 UseGZIP=true #啟用傳輸壓縮 UseHttps=true #啟用ssl加密 DenyFrom=192.168.0.233, 192.168.1.*, 192.168.2.0/24 #拒絕訪問的主機或網(wǎng)段 AllowFrom=192.168.*.* #允許訪問的主機或網(wǎng)段 DenyDirs=~/cgi, ~/upfiles #拒絕訪問的文件或文件夾 indexes=index.aspx,index.html #首頁文件(選填) rewrite=^/.+?\.(asp|php|cgi|pl|sh)$ /index.aspx #URL重寫 reproxy=/bbs/ http://192.168.1.112/bbs/ #反向代理 # Jexus php fastcgi address is '/var/run/jexus/phpsvr' ####################################################### fastcgi.add=php|socket:/var/run/jexus/phpsvr #php的fastcgi網(wǎng)關(guān) # php-fpm listen address is '127.0.0.1:9000' ############################################ fastcgi.add=php|tcp:127.0.0.1:9000 #php的fastcgi網(wǎng)關(guān)
3、實踐部分
3.1、主機信息
ser:
ipaddress=10.168.0.165
client:
ipaddress=10.168.0.8
3.2、yum源安裝
yum -y update 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 install -y ntp wget
3.3、安裝步驟
In ser:
3.3.1、創(chuàng)建工作文件夾
mkdir ~/ctmj cd ~/ctmj
3.3.2、ntp時間校準
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime ntpdate -u pool.ntp.org
3.3.3、關(guān)閉selinux
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config setenforce 0
3.3.4、下載安裝包
wget -c http://download.mono-project.com/sources/libgdiplus/libgdiplus-2.10.9.tar.bz2 wget -c http://download.mono-project.com/sources/mono/mono-3.10.0.tar.bz2 wget -c http://linuxdot.net/down/jexus-5.6.3.tar.gz
3.3.5、GDI+組件編譯安裝
tar jxf libgdiplus-2.10.9.tar.bz2 cd libgdiplus-2.10.9/ ./configure --prefix=/usr make && make install ldconfig cd ..
3.3.6、mono編譯安裝
tar jxf mono-3.10.0.tar.bz2 cd mono-3.10.0 ./configure --prefix=/usr sed -i 's/#define HAVE_LOCALCHARSET_H 1/#define HAVE_LOCALCHARSET_H 0/g' eglib/config.h make && make install cd .. mono -V
顯示如下:
Mono JIT compiler version 3.10.0 (tarball Thu Jan 7 21:58:07 EST 2016) Copyright (C) 2002-2014 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com TLS: __thread SIGSEGV: altstack Notifications: epoll Architecture: amd64 Disabled: none Misc: softdebug LLVM: supported, not enabled. GC: sgen
3.3.7、jexus編譯安裝
tar zxf jexus-5.6.3.tar.gz cd jexus-5.6.3 ./install cd .. /usr/jexus/jws start
3.3.8、設(shè)置服務(wù)管理腳本
1)創(chuàng)建服務(wù)腳本
vim編輯/etc/rc.d/init.d/jexus
輸入如下內(nèi)容:
#!/bin/bash #chkconfig: 2345 10 90 #description: Jexus Server 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 ;; *) echo "Usage: jexus {start|stop|restart|status}" exit 1 ;; esac
注,以上腳本必須包含2-3行,否則腳本無法注冊:
其中2345是默認啟動級別,級別有0-6共7個級別。
-- 等級0表示:表示關(guān)機
-- 等級1表示:單用戶模式
-- 等級2表示:無網(wǎng)絡(luò)連接的多用戶命令行模式
-- 等級3表示:有網(wǎng)絡(luò)連接的多用戶命令行模式
-- 等級4表示:不可用
-- 等級5表示:帶圖形界面的多用戶模式
-- 等級6表示:重新啟動
10是啟動優(yōu)先級,90是停止優(yōu)先級,優(yōu)先級范圍是0-100,數(shù)字越大,優(yōu)先級越低。
2)注冊服務(wù)啟動腳本
chkconfig --add jexus
3.4、jws服務(wù)的配置
3.4.1、配置應(yīng)用程序目錄
mkdir -p /var/www/www.cmdschool.org echo "www.cmdschool.org" > /var/www/www.cmdschool.org/index.html
3.4.2、配置虛擬目錄
vim編輯/usr/jexus/siteconf/www.cmdschool.org
port=80 root=/ /var/www/www.cmdschool.org hosts=www.cmdschool.org indexes=Default.aspx,index.aspx,index.html
3.4.3、重啟服務(wù)
/etc/init.d/jexus restart
3.4.4、配置防火墻
1)編輯防火墻
vim編輯/etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
2)重啟防火墻
/etc/init.d/iptables restart
3.4.5、靜態(tài)測試
In Client:
1)模擬DNS配置
vim編輯/etc/hosts
10.168.0.165 www.cmdschool.org
2)測試服務(wù)
curl www.cmdschool.org
顯示如下:
www.cmdschool.org
3.4.6、C#項目測試
1)下載開源的博客網(wǎng)站代碼:
http://sourceforge.net/projects/tblogger/
或者直接下載:
wget http://nchc.dl.sourceforge.net/project/tblogger/tblogger/v0.23b/tBloggerV0.23bSource.zip
2)復(fù)制代碼到測試目錄下
unzip tBloggerV0.23bSource.zip rm -rf /var/www/www.cmdschool.org/* cp -rf tBloggerV0.23bSource/* /var/www/www.cmdschool.org/
3)編輯windows系統(tǒng)的hosts(模擬DNS配置):
notepad %SystemRoot%\System32\drivers\etc\hosts
加入如下內(nèi)容:
10.168.0.165 www.cmdschool.org
4)瀏覽器測試
參考文獻:
http://www.mono-project.com/
http://www.jexus.org/
官方安裝腳本:
http://security.ivannet.com/linux/shell/centos6.x_mono_jexus_default.sh
官方安裝教程:
http://www.linuxdot.net/bbsfile-3084
測試博客網(wǎng)站下載:
http://sourceforge.net/projects/tblogger/