ASP.NET MVC3 on Mono的折騰(二):Linux(openSUSE)下的部署

作者: 阿不  來源: 博客園  發布時間: 2011-02-21 10:15  閱讀: 2348 次  推薦: 0   原文鏈接   [收藏]  

  續上篇介紹Mono在Window下的部署,對于我而言,相比于Windows平臺下的部署,Linux平臺下的部署挑戰性會更大一點。從來沒有Linux使用經驗的我,要在Linux下部署Mono,遇到的不僅僅是Mono部署的問題,還有各種Linux操作的問題。我是使用的從Mono官方下載的安全配置好的虛擬機,安裝方面的問題就可以暫時先跳過去,不過這里還是要先總結一下,先熟悉一下的幾個常用的openSUSE操作。

  1)配置網卡,進行文件管理都需要超級用戶(su)密碼,官方下載的虛擬機,su密碼是:mono。剛開始不知道,還是小小的折騰了一會兒。其實,訪問http://localhost 的默認首頁就有這個用戶密碼的說明了。

  2)apache的配置路徑是在:/etc/apache2/。站點的默認目錄是在:/srv/www/htdocs/,你會頻繁在這兩個目錄做切換。

  3)要修改配置你需要用超級用戶的權限打開文件管理器,這個也是讓我花了一些時間去查找。解決方案是創建一個命令行的快捷方式就可以了,看這個貼子

  4)重啟apache的命令行:/etc/init.d/apache2 restart

  5)如果需要,最好去掃盲一下什么是,YaST,什么是安裝源。Linux下,動不動就要下源碼編譯安裝,嚇都嚇死人了。使用的VPC是之前下載的,裝的是Mono 2.8,昨天就是利用YaST自動升級到Mono 2.10。

  事后總結,在Linux下部署Mono ASP.NET,主要是沒有像IIS那樣可視化的操作,都是命令行,看起來就是恐怖,但其實并沒有的想像中的那么復雜。我們要先把官方的幾個文檔(Mod_monoAutoHostingApache mod_mono configuration tool)先熟悉一下,了解一下工作原理,再動手實施可能會少走一些彎路。另外一條教訓就是,先部署低版本的,簡單的,再嘗試新版本剛支持的特性,比如先部署簡單的ASP.NET WebForm頁面(簡單的一個頁面),再部署MVC站點;先部署MVC1.0,再部署最新的MVC3.0,這樣即使出錯也更利于我們排錯。剛開始直接折騰MVC3,那個杯具啊。

  官方文檔中介紹,在openSUSE+Apache有兩種部署方式:自動Hosting和手工創建配置文件部署:

  1.自動Hosting,只需做一次Apache配置,以后的部署Mono站點就只需要Xcopy到站點目錄下就可以了,不需要再做額外部署。參考AutoHosting,主要步驟:

1)在/etc/apache2/httpd.conf添加:Include /etc/apache2/mod_mono.conf (這個文件在openSUSE 11.3的實際路徑是Include /etc/apache2/con.d/mod_mono.conf),引入mod_mono的配置。

2)在mod_mono.conf文件中添加這一行:MonoAutoApplication enabled。在官方文檔中,還需要加入:MonoServerPath "/usr/bin/mod-mono-server2",但實際上好像不需要。而且我改成:MonoServerPath "/usr/bin/mod-mono-server4",它也不工作,不知道是什么問題。

3)如果是部署MVC站點,還需要在mod_mono.conf文件中加入這行:ForceType application/x-asp-net。但是對MVC站點,不推薦使用自動Hosting。

  當我做了以上配置之后,我們在部署ASP.NET站點時,就只需要把目錄拷貝到/srv/www/htdocs/就可以完成部署了。文件目錄對應的就是站點的虛擬目錄。

  2.手工創建部署文件,看完善友兄的這篇文章在Mono 2.8上部署ASP.NET MVC 2,我有點暈。那個配置文件就足以讓我頭痛,之前這篇文檔Apache mod_mono configuration tool一直都被我無視著。當我完整的看完幾個官方文檔之后,我才意識到這個工具的重要性。這個工具會根據我們希望部署的站點的情況,提供幾個輸入框讓我們輸入,之后我們就可以下載它生成的配置文件,直接將這些配置文件下載放到:/etc/apache2/conf.d/  而不需要再做其它配置站點就可以正常工作。

  3.最土的部署辦法,就是看看內置的那幾個站點是如何部署的,直接把它的幾個配置文件拷貝一下,修修改改也一樣可以。在剛開始,我沒有按正常流程來的時候,實在搞不清楚了,我用這種辦法也一樣把站點部署成功了。而且還是直接部署MVC3站點。

  總結到這里,我發現在Linux下部署Mono ASP.NET也不是很難的事情嘛。只是一開始走的彎路有點多,心情有點急躁。不過,上篇中提到的MVC3的幾個問題,在Linux下面也是同樣存在的,應該可以判斷是Mono2.10存在的bug吧,不過這bug也太過低級吧,難道他們沒有測試提交的情況?如果是這樣,希望能盡快解決這些bug。

0
0
 
 
 

文章列表

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()