上一篇(windows下nginx+mono+fastCGI部署asp.net網站)參考了諸多前輩終於在windows下部署成功,唯一點遺憾就是asp.net webform下面樣式有點不對勁,mvc倒還可以.
本篇說說我近兩天折騰Ubuntu的成果,對於一個沒接觸過Linux系統的人來說得從基礎幹起呀.下面先簡單的介紹下Ubuntu系統下面常用的幾條命令,掃掃盲:
檔案管理 cd .. 回目前的目錄的上一級目錄
檔案管理 cd - 回上一次所在的目錄
檔案管理 cd ~ 或 cd 回目前使用者的宿主目錄
檔案管理 cd /etc進入某個目錄.
檔案管理 # cp cp /路經/檔案 ./ 移動絕對路經下的檔案到目前的目錄下
sudo apt-get install 軟體名 安裝軟體命令
sudo apt-get update 系統更新
wget http地址..是一個命令列的下載工具,很強大
tar xzvf 壓縮檔---對檔案解壓,tar czvf this.tar.gz ./*.txt--對檔案壓縮
sudo gedit 路徑/檔案 開啟編輯器.
Mono –v 查看mono版本
Nginx –V 查看Nginx版本.
本文用到的命令基本上就是以上,沒做全面介紹.
下面進入正題,我的Ubuntu是安裝在VMware6.5上的,配置網卡的時候出現好多狀況,導致虛擬機器的Ubuntu上不了網,哎..可愛又可恨的破解版呀!!!
不過最後找到了幾個服務搞定,這個不是本文重點略過.
第一步安裝相關軟體:
安裝Nginx:
開啟終端:
輸入:sudo apt-get update
sudo apt-get install nginx
提示之後安裝成功,稍後在配置.
安裝Mono2.10:
得到提示後輸入下一條命令
sudo apt-get build-dep mono
wget http://ftp.novell.com/pub/mono/sources/mono/mono-2.10.tar.bz2
tar jvxf mono-2.10.tar.bz2
cd mono-2.10
./configure --prefix=/usr/local
make
sudo make install
安裝和編譯Mono的時候時間會稍長點..
安裝fastcgi-mono-server:
$ sudo apt-get install subversion
$ svn co http://mono-soc-2007.googlecode.com/svn/trunk/brian/FastCgi/ fastcgi-mono-server
$ cd fastcgi-mono-server/
$ ./autogen.sh
$ make
$ sudo make install
第二步配置:
配置 Nginx
首先編輯nginx.conf 檔案: gedit /etc/nginx/nginx.conf
其他的節點不用動 在http 節點裡面添加
server {
listen 80;
server_name localhost;
location ~ {
root /home/xiaogang/Projects/nginxSite;#項目根目錄
#index index.html index.htm;
fastcgi_pass 127.0.0.1:8000; #此處連接埠要與fastcgi映射的連接埠一致
fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
include /etc/nginx/fastcgi_params;
}
}
接著編輯sites-available目錄下的default檔案:gedit /etc/nginx/sites-available/default
把剛才的Server節點下的location內容 複製到default檔案下的server節點下.這點很重要!
第三步運行:
一些就緒之後需要啟動nginx服務
命令列輸入:/etc/init.d/nginx start
如無意外會顯示
然後啟動mono-fastCGI服務 sudo fastcgi-mono server2 /socket=tcp:8000 /address=127.0.0.1 /applications=/:/home/xiaogang/Projects/nginxSite
細心看圖的朋友會發現,連接埠號碼和地址位置顛倒了.不知道不是版本問題,不過不影響運行結果.
在瀏覽器中輸入 http://localhost/就可以訪問你的網站了.剛第一次部署建議部署一個簡單的網站就可以.
如果有朋友要部署mvc的話需要在/etc/nginx/fastcgi_params 檔案最後加上
fastcgi_param PATH_INFO "";
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
咳咳..搞了兩天總算搞出來了,Nginx真的很強大..需要繼續研究.
ps:我裝的Mono2.10 不是支援.netframwork4.0 嗎?怎麼跑不起來4.0的網站..糾結!