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: //-------------------------------------------- ...
随机推荐
- TDD在Unity3D游戏项目开发中的实践
0x00 前言 关于TDD测试驱动开发的文章已经有很多了,但是在游戏开发尤其是使用Unity3D开发游戏时,却听不到特别多关于TDD的声音.那么本文就来简单聊一聊TDD如何在U3D项目中使用以及如何使 ...
- 在Ubuntu 16.10 安装 git 并上传代码至 git.oschina.net
1. 注册一个账号和创建项目 先在git.oschina.net上注册一个账号和新建一个project ,如project name 是"myTest". 2.安装git sudo ...
- 通过 floating IP 访问 VIP - 每天5分钟玩转 OpenStack(126)
前面我们是直接用 curl 测试 VIP,在更为真实的场景中通常会使用 floating IP 访问 VIP. 下面我们给 VIP 关联一个 floating IP,再进行测试. 访问 Project ...
- Paypal开发中遇到请求被中止: 未能创建 SSL/TLS 安全通道及解决方案
最近在基于ASP.NET上开发了Paypal支付平台,在ASP.NET开发的过程中没有遇到这个问题,但是引用到MVC开发模式中的时候就出现了"未能创建 SSL/TLS 安全通道及解决方案&q ...
- 如何在ASP.Net创建各种3D图表
我们都知道,图表在ASP.NET技术中是一种特别受欢迎而又很重要的工具.图表是表示数据的图形,一般含有X和Y两个坐标轴.我们可以用折线,柱状,块状来表示数据.通过图表控件,我们即能表示数据又能比较各种 ...
- Effective前端2:优化html标签
div { float: left; } .keyboard > div + div { margin-left: 8px; } --> div{display:table-cell;ve ...
- 纸箱堆叠 bzoj 2253
纸箱堆叠 (1s 128MB) box [问题描述] P 工厂是一个生产纸箱的工厂.纸箱生产线在人工输入三个参数 n, p, a 之后,即可自动化生产三边边长为 (a mod P, a^2 mod p ...
- BPM合同管理解决方案分享
一.方案概述合同是组织与组织间所订协议的法律 表现形式,体现着双方对于合作在法律和道德上的承诺.然而,大多数企业的合同管理都或多或少存在合同审批过程不规范.签订草率.审批权责不清.合同执行跟踪难.合同 ...
- phpexcel读取输出操作
//读取 <?php header("Content-Type:text/html;charset=utf-8"); include 'Classes/PHPExcel.ph ...
- 解除win7网络限速.
在电脑刚买或者系统重装了的时候,win7系统会默认限制20%的网络速度,限制了我们的上网速度,我们可以解决这个限制,让上网变得更快 下面是操作步骤 1.开始>运行 2.输入以下命令,然后确定 g ...