在Ubuntu13.04中配置Jexus+Mono3.2运行Asp.Net Mvc 4站点 (一)
这篇文章打算分两部分来写,第一部分介绍在Ubuntu中安装和配置.Net Framework4.5环境,第二部分介绍如何部署Asp.Net Mvc 4站点并确保Mvc4的几个重要特性都能正常工作。
一、在Ubuntu中安装和配置.Net Framework4.5环境
2年前尝试过在Ubuntu中安装与配置Mono、mod_mono及Apache来承载Mvc 3站点,事后总结记录了一篇博客。时过境迁,如今的Mono从支持.Net Framework 4.5以来也已经走过了3.x的大大小小的版本,4天前刚刚发布了3.2版。在这期间也曾经试过Mono 3.0.x系列,但因为没注意自从2.11后,Mono的安装需要一个已经存在的Mono C#编译环境,所以一直没有成功,直到前天看到张善友的《CentOS 6.3下 安装 Mono 3.2 和Jexus 5.4》。参考他的步骤,终于在Ubuntu上复制了他的成功。期间也走了弯路,我会在最后介绍怎样解决遇到的错误。
1. 安装编译Mono需要的环境
第一行为必须,第二行为可选
sudo apt-get install build-essential automake autoconf libtool bison gettext pkg-config libgdiplus
sudo apt-get install libglib2.-dev libfreetype6-dev libfontconfig-dev gettext libgif-dev libtiff4-dev libpng12-dev libexif-dev libx11-dev libxft-dev libjpeg-dev
如果你的网络环境还凑合,上述过程应该不耗多少时间,但下面两个就比较慢了,不妨喝杯茶,把两个版本的Mono下下来
cd ~/mono
wget http://download.mono-project.com/sources/mono/mono-2.10.8.tar.bz2
wget http://download.mono-project.com/sources/mono/mono-3.2.0.tar.bz2
2. 安装Mono 2.10.8
cd ~/mono
tar -xjvf mono-2.10..tar.bz2
cd mono-2.10.
然后
./configure --prefix=/usr
make
sudo make install
注意必须使用“--prefix=/usr”选项,为了确保Mono 2.10.8, Mono 3.2以及Jexus都安装在相同位置。安装成功后,mono -V应能看到版本信息。
3. 安装Mono 3.2
同样,首先解压,然后带着“--prefix=/usr”参数configure,编译,此时先不要安装
cd ~/mono
tar -xjvf mono-3.2..tar.bz2
cd mono-3.2.
./autogen.sh --prefix=/usr
make
编译完3.2后,需要先卸载2.10.8
cd ~/mono/mono-2.10.
sudo make uninstall
然后再继续安装Mono 3.2
sudo make install
安装完成后,mono -V应可看到3.2的版本信息。此时还需要ldconfig一下,确保新安装的动态库可被找到。
ldconfig
4. 安装Jexus
cd ~/jexus
wget http://www.linuxdot.net/down/jexus-5.4.tar.gz
tar -zvxf jexus-5.4.tar.gz
cd jexus-5.4
sudo ./install
默认Jexus会被安装在/usr/jexus下,此时进入该安装路径启动jexus应可成功看到info页
cd /usr/jexus
sudo ./jws start
Jexus的站点配置文件在siteconfig中,日志在log中,执行./jws start后无论成功失败没有任何消息提示,需要进入log查看,或者./jws status也行。
关于Jexus的站点配置,可参考这里:http://www.linuxdot.net/bbsfile-3084
关于Jexus与IIS8的性能比较,可参考这里:http://www.cnblogs.com/linqingfeng/archive/2013/06/14/3135716.html
启动成功后,http://localhost/info 即可看到Jexus的info页,在default站点目录下,放一个内容为<%=DateTime.Now%>的Default.aspx文件,如果可以看到
后记-错误的过程
在得出上述的步骤之前,我曾经按照如下过程安装过,最后遇到了jexus无法正常启动的错误
- ::: ==================== jws.exe error message =========================
Sender: jws.exe, Sender TypeName: AppDomain
Exception Source: jws, TargetSite Name: A
Message is:
An exception was thrown by the type initializer for Mono.Unix.Native.Syscall
StackTrace is:
at A.C.A () [0x00000] in <filename unknown>:
at A.C..ctor (System.String A) [0x00000] in <filename unknown>:
at A.o.A (System.String[] A) [0x00000] in <filename unknown>:
IsTerminating: True
1. 通过apt安装Mono,安装完成显示版本为2.10.8
2. 使用Mono 3.2在github上介绍的方法安装 Mono3.2
3. 在/usr/local下安装Jexus
Jexus的这个错误在Google上查了半天也没有查到,但只要将Mono 2.10.8、Mono 3.2和Jexus都安装在/usr下就可以成功运行。虽然问题解决了,但这个错误的具体原因还不得而知,望有高人指点。
在Ubuntu13.04中配置Jexus+Mono3.2运行Asp.Net Mvc 4站点 (一)的更多相关文章
- 在Ubuntu13.04中配置Jexus+Mono3.2运行Asp.Net Mvc 4站点 (二)
开始写这篇前看了看日期,写下这个序列的前一半竟是两个月前的事情了,无比惭愧.这段时间尝试重新组织Mvc4的项目引用,创建了两个项目模板,一个是简单模式,即仅包含Mvc基本功能.另一个是包含了Mvc4 ...
- 沉淀,再出发——在Ubuntu Kylin15.04中配置Hadoop单机/伪分布式系统经验分享
在Ubuntu Kylin15.04中配置Hadoop单机/伪分布式系统经验分享 一.工作准备 首先,明确工作的重心,在Ubuntu Kylin15.04中配置Hadoop集群,这里我是用的双系统中的 ...
- 在 docker中 运行 mono /jexus server 并部署asp.net mvc站点
http://linuxdot.net/bbsfile-3988 1. 安装 docker: // docker 1.7 新版 安装非常容易,理论上说,在主流的任意linux发行版上都可以 ...
- 在Eclipse中配置Tomcat 创建和运行Servlet/JSP
在Eclipse中配置Tomcat 创建和运行Servlet/JSP 步骤一:在Eclipse中配置Tomcat(注意下载Eclipse IDE for Java EE Developers) (1) ...
- 如何在MyEclipse中配置jre的编译运行环境
由于在MyEclipse中已经自带了jre编译环境,但由于版本太低,所以有时候需要将编译环境配置为系统的jre版本.在MyEclipse中配置jre的编译运行环境很简单,只需要全局配置一次,则所有项目 ...
- 在Ubuntu14.04中配置mysql远程连接教程
上一篇文章,小编带大家学会了在Ubuntu14.04中安装MySQL,没有来得及上课的小伙伴们可以戳这篇文章:如何在Ubuntu14.04中安装mysql,今天给大家分享一下,如何简单的配置MySQL ...
- MVC中使用EF(1):为ASP.NET MVC程序创建Entity Framework数据模型
为ASP.NET MVC程序创建Entity Framework数据模型 (1 of 10) By Tom Dykstra |July 30, 2013 Translated by litdwg ...
- 总结一下工作中遇到的NPOI以及在ASP.NET MVC中的使用
1.前言 相信大家在工作中经常要遇到一些导入导出Execl操作.学习贵在分享,分享使人快乐,园子里的前辈已经有很多好的文章,鄙人也是能力有限,在这里把这些好的文章总结,方便以后再工作中使用. NPOI ...
- 在 Ubuntu 14.04 中配置 PXE 服务器
PXE(预启动执行环境Preboot Execution Environment)服务器允许用户从网络中启动 Linux 发行版并且可以不需要 Linux ISO 镜像就能同时在数百台 PC 中安装. ...
随机推荐
- 构建一个基本的前端自动化开发环境 —— 基于 Gulp 的前端集成解决方案(四)
通过前面几节的准备工作,对于 npm / node / gulp 应该已经有了基本的认识,本节主要介绍如何构建一个基本的前端自动化开发环境. 下面将逐步构建一个可以自动编译 sass 文件.压缩 ja ...
- NodeJs之Path
Path模块 NodeJs提供的Path模块,使得我们可以对文件路径进行简单的操作. API var path = require('path'); var path_str = '\\Users\\ ...
- 【每日一linux命令3】参数(或称选项)顺序
一般除了特殊情况,参数是没有顺序的.举例而言,输入"–a –v"与输入"–v –a"以及"–av" 的执行效果是相同的.但若该参数后指定了要 ...
- jQuery动画-圣诞节礼物
▓▓▓▓▓▓ 大致介绍 下午看到了一个送圣诞礼物的小动画,正好要快到圣诞节了,就动手模仿并改进了一些小问题 原地址:花式轮播----圣诞礼物传送 思路:动画中一共有五个礼物,他们平均分布在屏幕中,设置 ...
- 模拟AngularJS之依赖注入
一.概述 AngularJS有一经典之处就是依赖注入,对于什么是依赖注入,熟悉spring的同学应该都非常了解了,但,对于前端而言,还是比较新颖的. 依赖注入,简而言之,就是解除硬编码,达到解偶的目的 ...
- 一个诡异的COOKIE问题
今天下午,发现本地的测试环境突然跑不动了,thinkphp直接跑到异常页面,按照正常的排错思路,直接看thinkphp的log 有一条 [ error ] [2]setcookie() expects ...
- Android SDK 与API版本对应关系
Android SDK版本号 与 API Level 对应关系如下表: Code name Version API level (no code name) 1.0 API level 1 ( ...
- IOS之Objective-C学习 ARC下的单例模式
单例模式是我常用的一种设计模式,最常见的用途就是用来保存数据并且传递数据.这都归功于单例模式的特性,首先就让我为大家简单介绍一下单例模式的特性. 单例模式的三大特性: 1.某个类只能有一个实例: 2. ...
- javascript中的变量作用域以及变量提升
在javascript中, 理解变量的作用域以及变量提升是非常有必要的.这个看起来是否很简单,但其实并不是你想的那样,还要一些重要的细节你需要理解. 变量作用域 “一个变量的作用域表示这个变量存在的上 ...
- CYQ.Data 从入门到放弃ORM系列:开篇:自动化框架编程思维
前言: 随着CYQ.Data 开始回归免费使用之后,发现用户的情绪越来越激动,为了保持这持续的激动性,让我有了开源的念头. 同时,由于框架经过这5-6年来的不断演进,以前发的早期教程已经太落后了,包括 ...