Ubuntu下利用Mono,Jexus搭建Asp.Net(MVC) Web服務器


  最近在Ubuntu上搭建了Asp.Net的Web服務器,其中遇到很多問題,整理一下思路,以備后用。

搭建環境以及配套軟件

  Ubuntu: 11.10
  Mono:3.0.6 下載地址(http://download.mono-project.com/sources/mono/mono-3.0.6.tar.bz2) 出於穩定性的考慮,建議不要使用比這個版本更高的其他版本。
  Jexus:5.0 下載地址(http://www.linuxdot.net/down/jexus-5.0.1.tar.gz)

 

安裝Mono

  

cd /downloads
wget http://download.mono-project.com/sources/mono/mono-3.0.6.tar.bz2
tar -jxvf mono-3.0.6.tar.bz2
cd mono-3.0.6
./configure --prefix=/usr/local
make
make install

  第一步:是進到下載文件的目標文件夾,可以根據自己的習慣選擇,這里使用系統的downloads文件夾。
  第二步:是使用下載命令下載mono源碼,在http://download.mono-project.com/sources/mono/這個目錄下有很多版本的mono源碼,也可以根據自己的需要下載不同版本的源碼進行安裝。
  第三步:在目標文件夾中解壓改文件,不同格式的解壓參數不同,tar.bz2格式的文件解壓參數為 -jxvf.
  第四步:文件解壓成功后,進到改目錄。
  第五步:configure是mono的一個安裝配置文件,這里我們主要配置安裝路徑。在接下來安裝的jexus中,需要配置mono的安裝路徑,而jexus默認的安裝路徑是 /usr/local/mono,所以建議設置為 /usr/local.
  第五步:編譯。
  第六步:安裝。

  特別說明:如果系統安裝了其他版本的Mono,需要先卸載改版本的Mono,卸載方法是進入到安裝目錄,然后使用uninstall命令進行卸載。同時可以通過mono -V(注意大小寫)查看mono的版本號。

#卸載
cd /usr/local/mono
make uninstall
#查看版本號
mono -V

安裝Jexus

#進到下載目錄
cd /usr/loacal
#下載文件
wget http://www.linuxdot.net/down/jexus-5.0.1.tar.gz
#解壓文件
tar -zxvf jexus-5.0.tar.gz
#進入jexus文件夾
cd jexus
#提權(涉及到jexus的操作都需要使用root權限)
sudo su
#注冊
./jws.regsvr

  Jexus是一個解壓即可使用的程序,所以我們可以在下載的時候選擇安裝路徑,當然也可以下載到專用的下載目錄,解壓后在mv到需要安裝的目錄。
  涉及到jexus的操作有注冊服務(regsvr),啟動服務(start),停止服務(stop)以及重啟(restart),所有這些操作都需要root權限。
  注冊服務以后,jexus生成一個默認的站點,使用以下地址檢測服務是否啟動(http://120.0.0.1/info)

  

  jexus的站點配置文件在安裝目錄下的 siteconf 文件夾下面,每一個站點對應一個目錄文件。系統有一個默認的 default 配置,在這個文件當中我們可以找到並修改站點的根目錄、起始地址等配置信息。default 默認的網站根目錄在 /var/www/default (注意:jexus不會自動創建default目錄,需要手動創建。)

上傳MVC網站文件

  上傳網站文件需要開啟ftp服務,這里使用 vsftpd ,詳細的使用教程這里不做講解。
  相比普通的webform網站來講,MVC的網站配置相對較難。主要涉及到一些MVC類庫的收集,之所以使用mono 3.0.6以上的版本也是因為較早的版本需要手動添加更多的dll文件,這里我整理了mvc3需要調用到的一些庫文件。以下是庫文件列表:

System.Web.Helpers.dll 1.0
System.Web.Mvc.dll 3.0
System.Web.Razor.dll 1.0
System.Web.WebPages.dll 2.0
System.Web.WebPages.Razor.dll 1.0

   把這些文件放在網站的 bin 目錄下,一起上傳到網站根目錄即可。這里需要注意的一個問題是,MVC3需要System.Web.WebPages.dll2.0以上的版本,而在window下這個dll都是1.0的版本,如果直接從window下拷貝將會發生依賴錯誤。

  接下來的一個重要的步驟就是修改網站配置文件 web.config 。

 

<?xml version="1.0"?>
<!--
  For more information on how to configure your ASP.NET application, please visit
  http://go.microsoft.com/fwlink/?LinkId=152368
  -->

<configuration>
  <appSettings>
    <add key="ClientValidationEnabled" value="true"/> 
    <add key="UnobtrusiveJavaScriptEnabled" value="true"/> 
  </appSettings>
    
  <system.web>
    <compilation debug="true" targetFramework="4.0">
      <assemblies>
        <add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
        <add assembly="System.Web.Helpers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
        <add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
        <add assembly="System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
        <add assembly="System.Web.WebPages, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
      </assemblies>
    </compilation>
    <globalization cultrue="zh-CN" uiCultrue="en-US"/>

    <authentication mode="Forms">
      <forms loginUrl="~/Account/LogOn" timeout="2880" />
    </authentication>

    <pages>
      <namespaces>
        <add namespace="System.Web.Helpers" />
        <add namespace="System.Web.Mvc" />
        <add namespace="System.Web.Mvc.Ajax" />
        <add namespace="System.Web.Mvc.Html" />
        <add namespace="System.Web.Routing" />
        <add namespace="System.Web.WebPages"/>
      </namespaces>
    </pages>
  </system.web>
    
  <system.webServer>
    <validation validateIntegratedModeConfiguration="false"/>
    <modules runAllManagedModulesForAllRequests="true"/>
  </system.webServer>

  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="3.0.0.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
</configuration>

 

   這里有兩個細節要注意 第一個是程序集配置節中的 System.Web.WebPages.dll 的版本號,原網站可能是1.0版本的,這里需要改為2.0.
  此外需要添加 <globalization cultrue="zh-CN" uiCultrue="en-US"/>  配置節。

下載工具包

  點擊下載mvc3工具包。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM