Mono是.NET的跨平台實現
在眾多關於語言的爭論中,.NET一直被以不能跨平台而詬病,Mono改變了這一現狀。
有人當心Mono會涉及版權啥的問題。高深的偶不懂,不過我覺得Unity3D都能用,為什么我們不能用。 :)
Jexus是Linux下免費的服務器軟件。Jexus作者宇內,已對Mono做了大量嘗試,穩定靠譜。
我自己目前也有一個爬蟲項目正在Mono上進行中。項目還沒有完成。趁着空擋留個記錄吧。
安裝方法在以下環境測試過,均運行在VMware上
- CentOS 6.2 32 最小安裝
- Centos 7.0 64 最小安裝
- Ubuntu 14.04 Server 64 默認
均使用root身份執行命令
如果不安裝Jexus,做到步驟5,你的Mono就可以使用了
1. 防火牆就直接關閉了,防止新手不知道為啥老是不能訪問的情況
//Centos
Centos7 使用新的firewalld,不再使用iptables
systemctl stop firewalld.service
systemctl disable firewalld.service

firewall-cmd --add-port=80/tcp //添加端口號到防火牆白名單
如果是CentOS6則使用:
service iptables stop
chkconfig iptables off

/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT service iptables save //低版本使用 /etc/rc.d/init.d/iptables save 保存
//Ubuntu
//Ubuntu默認沒有防火牆,但是賬號權限低,先開啟root,安裝SSH。
//此步完成后,請改用Root賬戶登入,避免權限不足,安裝過程結束后建議停用Root賬號
sudo passwd root //輸入當前用戶密碼 //輸入、重復 root 新密碼
apt-get install ssh //安裝SSH,待會兒可以遠程上傳安裝包
vi /etc/ssh/sshd_config //然后按i進入編輯模式 //把 PermitRootLogin without-password 修改為 PermitRootLogin yes //按ESC,退出編輯模式,輸入:wq保存
sudo service ssh restart //要求輸入密碼 //這樣你就可以用SSH遠程控制或者上傳了

sudo passwd -l root
2. 安裝一些基礎的包
//Centos
我在安裝Centos的時候選擇了最小安裝,大部分組件是沒有的。先用yum命令,安裝一通(如果需要網絡命令,yum install net-tools)
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
安裝需要執行一段時間,具體時間按照你的網絡性能而定。安裝完畢
//Ubuntu用戶
apt-get install build-essential automake autoconf libtool bison gettext pkg-config libgdiplus
3. 在/usr目錄建立一個文件夾保存源碼包
cd /usr mkdir software
cd software
4. 先下載並編譯安裝libgdiplus,用來支持MONO的GDI
//Ubuntu略過第四部,前面已APT安裝libgdiplus,跳到5
方案1
wget http://download.mono-project.com/sources/libgdiplus/libgdiplus-2.10.tar.bz2
tar -xjf libgdiplus-2.10.tar.bz2 cd libgdiplus-2.10 ./configure --prefix=/usr make && make install
執行“./configure --prefix=/usr”后
方案2 #7樓 那一劍風情 提供。感謝宇內耐心指導
yum -y install libtool* git git clone git://github.com/mono/libgdiplus.git //速度比較慢,我已經Clone,並上傳到園子里來了,你可以直接 wget //wget http://files.cnblogs.com/Zendic/libgdiplus.zip unzip libgdiplus.zip cd libgdiplus ./autogen.sh --prefix=/usr make make install
5. 安裝Mono
3.4,3.4這個版本官方的源碼包,少了一些文件,以至於安裝會出現問題。我們使用shanyou帖子里面發的Mono3.4
下載地址:http://pan.baidu.com/s/1eQ452Ie
引用shanyou帖子:http://www.cnblogs.com/shanyou/p/3655447.html
mono-3.4.0.tar.gz 下載后上傳到 /usr/software 目錄,使用FlashFXP,XShell等工具SSH上傳即可
然后開始按下面解壓並安裝
tar -xzf mono-3.4.0.tar.gz cd mono-3.4.0 ./configure --prefix=/usr make && make install
安裝過程比較漫長,我CPU:I3 380M,VM虛擬機, make install 估計去了半個小時
等到安裝結束,可以使用 mono -V(大寫) 命令,來查看版本信息
//到這,你已經可以使用 mono HelloWorld.exe 這樣的方式來執行你.NET程序了。
//如果你不需要Jexus做Web服務器,到這即可結束
//隨便寫個控制台程序,然后從項目debug目錄上傳到linux運行一下
6. 可以安裝Jexus了
cd /usr/software wget linuxdot.net/down/jexus-5.6.1.tar.gz tar -zxvf jexus-5.6.1.tar.gz cd jexus-5.6.1
./install
這樣,Jexus就安裝好了
7. 啟動JEXUS
啟動 /usr/jexus/jws start 停止 /usr/jexus/jws stop 重啟 /usr/jexus/jws restart
自此,使用 http://你的IP/info即可驗證Jexus是否啟動
8. 跟隨Centos/Ubuntu啟動Jexus
方案1. 添加到 /etc/rc.local,跟隨啟動
//經嘗試,Ubuntu跟Centos6,可使用方案1。Centos7不知道為啥不行,如果是Centos7請使用方案2,如果有大神知道麻煩說下為什么
vi /etc/rc.local 按 i 鍵進入編輯模式 添一句 /usr/jexus/jws start 按ESC退出編輯模式,輸入 :wq保存文件
//Ubuntu用戶請加在 exit 0 前面哈
方案2. 添加為系統服務,啟動
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保存文件
把這個腳本作為“服務”加入
chkconfig --add jws
至此,JEXUS已跟隨系統啟動,可以reboot一下試試看
你也可以通過修改 /usr/jexus/siteconf 里面的文件,來修改站點配置。