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

來源:互聯網
上載者:User

續上篇介紹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_mono,AutoHosting,Apache 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/conf.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。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.