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工具包。
Ubuntu下利用Mono,Jexus搭建Asp.Net(MVC) Web服务器的更多相关文章
- ubuntu下通过mono+jexus布署mvc5网站
本文使用的ubuntu为14.04 LTS 一.安装mono,本文使用源码安装的方式 1.搭架mono编译环境 sudo apt-get update sudo apt-get install bui ...
- linux下利用elk+redis 搭建日志分析平台教程
linux下利用elk+redis 搭建日志分析平台教程 http://www.alliedjeep.com/18084.htm elk 日志分析+redis数据库可以创建一个不错的日志分析平台了 ...
- ubuntu下mysql的环境搭建及使用
ubuntu下mysql的环境搭建及使用 环境安装 使用如下命令分别安装服务端程序,客户端程序,及客户端依赖库 sudo apt-get install mysql-server sudo apt-g ...
- ubuntu下python flask环境搭建
ubuntu下python flask环境搭建 1. 安装pip sudo apt-get install python-dev pyhton-pip 2. 安装virtualenv sudo apt ...
- ubuntu 下 mysql数据库的搭建 及 数据迁移
1.mysql的安装 我是使用apt-get直接安装的 :sudo apt-get install mysql-server sudo apt-get install mysql-client 2.配 ...
- Ubuntu下hadoop环境的搭建(伪分布模式)
Ubuntu下hadoop环境的搭建(伪分布模式) 一.必要资源的下载 1.Java jdk(jdk-8u25-linux-x64.tar.gz)的下载 具体链接为: http://www.oracl ...
- ubuntu下Nodic开发环境搭建
ubuntu下Nodic开发环境搭建 1.编译环境 ubuntu可直接装gcc编译环境 sudo apt install gcc-arm-none-eabi 也可以下载可执行文件download 2. ...
- Ubuntu下用hadoop2.4搭建集群(伪分布式)
要真正的学习hadoop,就必需要使用集群,可是对于普通开发人员来说,没有大规模的集群用来測试,所以仅仅能使用伪分布式了.以下介绍怎样搭建一个伪分布式集群. 为了节省时间和篇幅,前面一些步骤不再叙述. ...
- 利用 nodeJS 搭建一个简单的Web服务器(转)
下面的代码演示如何利用 nodeJS 搭建一个简单的Web服务器: 1. 文件 WebServer.js: //-------------------------------------------- ...
随机推荐
- UE4新手之编程指南
虚幻引擎4为程序员提供了两套工具集,可共同使用来加速开发的工作流程. 新的游戏类.Slate和Canvas用户接口元素以及编辑器功能可以使用C++语言来编写,并且在使用Visual Studio 或 ...
- 工欲善其事,必先利其器 之 VS2013全攻略(安装,技巧,快捷键,插件)!
如有需要WPF工具的朋友可以移步 工欲善其事,必先利其器 之 WPF篇: 随着开发轨迹来看高效WPF开发的工具和技巧 之前一篇<c++的性能, c#的产能?!鱼和熊掌可以兼得,.NET NATI ...
- MySQL设置字段的默认值为当前系统时间
问题产生: 当我们在对某个字段进行设置时间默认值,该默认值必须是的当前记录的插入时间,那么就将当前系统时间作为该记录创建的时间. 应用场景: 1.在数据表中,要记录每条数据是什么时候创建的,应该由数据 ...
- Oracle学习之路-- 案例分析实现行列转换的几种方式
注:本文使用的数据库表为oracle自带scott用户下的emp,dept等表结构. 通过一个例子来说明行列转换: 需求:查询每个部门中各个职位的总工资 按我们最原始的思路可能会这么写: ...
- 搭建属于自己的VIP积分系统(1)
很久没写博客了,如果有写得不好的地方,还请多多见谅. 架构设计 需求分析 这篇文章主要是介绍此VIP系统的基础架构.说实在的,我其实对 架构方面也不是很懂,我这套框架 还是拿别人的东西改过来的,并不是 ...
- 【夯实PHP基础】nginx php-fpm 输出php错误日志
本文地址 原文地址 分享提纲: 1.概述 2.解决办法(解决nginx下php-fpm不记录php错误日志) 1. 概述 nginx是一个web服务器,因此nginx的access日志只有对访问页面的 ...
- android Handler介绍
Handler使用介绍: Handler根据接收的消息,处理UI更新.Thread线程发出消息,通知Handler更新UI. Handler mHandler = new Handler() { p ...
- JAVA 设计模式之策略模式
定义:定义一组算法,将每个算法都封装起来,并且使他们之间可以互换. 类型:行为类模式 策略模式是对算法的封装,把一系列的算法分别封装到对应的类中,并且这些类实现相同的接口,相互之间可以替换.在前面说过 ...
- SQL 提示介绍 hash/merge/concat union
查询提示一直是个很有争议的东西,因为他影响了sql server 自己选择执行计划.很多人在问是否应该使用查询提示的时候一般会被告知慎用或不要使用...但是个人认为善用提示在不修改语句的条件下,是常用 ...
- nginx代理https站点(亲测)
nginx代理https站点(亲测) 首先,我相信大家已经搞定了nginx正常代理http站点的方法,下面重点介绍代理https站点的配置方法,以及注意事项,因为目前大部分站点有转换https的需要所 ...