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工具包。

posted @ 2013-06-17 15:09 第十章 阅读(...) 评论(...) 编辑 收藏