|
續(xù)上篇介紹Mono在Window下的部署,對(duì)于我而言,相比于Windows平臺(tái)下的部署,Linux平臺(tái)下的部署挑戰(zhàn)性會(huì)更大一點(diǎn)。從來沒有Linux使用經(jīng)驗(yàn)的我,要在Linux下部署Mono,遇到的不僅僅是Mono部署的問題,還有各種Linux操作的問題。我是使用的從Mono官方下載的安全配置好的虛擬機(jī),安裝方面的問題就可以暫時(shí)先跳過去,不過這里還是要先總結(jié)一下,先熟悉一下的幾個(gè)常用的openSUSE操作。
1)配置網(wǎng)卡,進(jìn)行文件管理都需要超級(jí)用戶(su)密碼,官方下載的虛擬機(jī),su密碼是:mono。剛開始不知道,還是小小的折騰了一會(huì)兒。其實(shí),訪問http://localhost 的默認(rèn)首頁就有這個(gè)用戶密碼的說明了。
2)apache的配置路徑是在:/etc/apache2/。站點(diǎn)的默認(rèn)目錄是在:/srv/www/htdocs/,你會(huì)頻繁在這兩個(gè)目錄做切換。
3)要修改配置你需要用超級(jí)用戶的權(quán)限打開文件管理器,這個(gè)也是讓我花了一些時(shí)間去查找。解決方案是創(chuàng)建一個(gè)命令行的快捷方式就可以了,看這個(gè)貼子。
4)重啟apache的命令行:/etc/init.d/apache2 restart
5)如果需要,最好去掃盲一下什么是,YaST,什么是安裝源。Linux下,動(dòng)不動(dòng)就要下源碼編譯安裝,嚇都嚇?biāo)廊肆恕J褂玫腣PC是之前下載的,裝的是Mono 2.8,昨天就是利用YaST自動(dòng)升級(jí)到Mono 2.10。
事后總結(jié),在Linux下部署Mono ASP.NET,主要是沒有像IIS那樣可視化的操作,都是命令行,看起來就是恐怖,但其實(shí)并沒有的想像中的那么復(fù)雜。我們要先把官方的幾個(gè)文檔(Mod_mono,AutoHosting,Apache mod_mono configuration tool)先熟悉一下,了解一下工作原理,再動(dòng)手實(shí)施可能會(huì)少走一些彎路。另外一條教訓(xùn)就是,先部署低版本的,簡單的,再嘗試新版本剛支持的特性,比如先部署簡單的ASP.NET WebForm頁面(簡單的一個(gè)頁面),再部署MVC站點(diǎn);先部署MVC1.0,再部署最新的MVC3.0,這樣即使出錯(cuò)也更利于我們排錯(cuò)。剛開始直接折騰MVC3,那個(gè)杯具啊。
官方文檔中介紹,在openSUSE+Apache有兩種部署方式:自動(dòng)Hosting和手工創(chuàng)建配置文件部署:
1.自動(dòng)Hosting,只需做一次Apache配置,以后的部署Mono站點(diǎn)就只需要Xcopy到站點(diǎn)目錄下就可以了,不需要再做額外部署。參考AutoHosting,主要步驟:
1)在/etc/apache2/httpd.conf添加:Include /etc/apache2/mod_mono.conf (這個(gè)文件在openSUSE 11.3的實(shí)際路徑是Include /etc/apache2/con.d/mod_mono.conf),引入mod_mono的配置。
2)在mod_mono.conf文件中添加這一行:MonoAutoApplication enabled。在官方文檔中,還需要加入:MonoServerPath "/usr/bin/mod-mono-server2",但實(shí)際上好像不需要。而且我改成:MonoServerPath "/usr/bin/mod-mono-server4",它也不工作,不知道是什么問題。
3)如果是部署MVC站點(diǎn),還需要在mod_mono.conf文件中加入這行:ForceType application/x-ASP-NET。但是對(duì)MVC站點(diǎn),不推薦使用自動(dòng)Hosting。
當(dāng)我做了以上配置之后,我們在部署ASP.NET站點(diǎn)時(shí),就只需要把目錄拷貝到/srv/www/htdocs/就可以完成部署了。文件目錄對(duì)應(yīng)的就是站點(diǎn)的虛擬目錄。
2.手工創(chuàng)建部署文件,看完善友兄的這篇文章在Mono 2.8上部署ASP.NET MVC 2,我有點(diǎn)暈。那個(gè)配置文件就足以讓我頭痛,之前這篇文檔Apache mod_mono configuration tool一直都被我無視著。當(dāng)我完整的看完幾個(gè)官方文檔之后,我才意識(shí)到這個(gè)工具的重要性。這個(gè)工具會(huì)根據(jù)我們希望部署的站點(diǎn)的情況,提供幾個(gè)輸入框讓我們輸入,之后我們就可以下載它生成的配置文件,直接將這些配置文件下載放到:/etc/apache2/conf.d/ 而不需要再做其它配置站點(diǎn)就可以正常工作。
3.最土的部署辦法,就是看看內(nèi)置的那幾個(gè)站點(diǎn)是如何部署的,直接把它的幾個(gè)配置文件拷貝一下,修修改改也一樣可以。在剛開始,我沒有按正常流程來的時(shí)候,實(shí)在搞不清楚了,我用這種辦法也一樣把站點(diǎn)部署成功了。而且還是直接部署MVC3站點(diǎn)。
總結(jié)到這里,我發(fā)現(xiàn)在Linux下部署Mono ASP.NET也不是很難的事情嘛。只是一開始走的彎路有點(diǎn)多,心情有點(diǎn)急躁。不過,上篇中提到的MVC3的幾個(gè)問題,在Linux下面也是同樣存在的,應(yīng)該可以判斷是Mono2.10存在的bug吧,不過這bug也太過低級(jí)吧,難道他們沒有測試提交的情況?如果是這樣,希望能盡快解決這些bug。
NET技術(shù):ASP.NET MVC3 on Mono的折騰(二):Linux(openSUSE)下的部署,轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時(shí)間聯(lián)系我們修改或刪除,多謝。