Linux(CentOS 6.7)下安排Mono和Jexus并且配备ASP.NET MVC3、4、5和WebApi(跨平台)

1.开业说明

  a.
首先我在描写就首博客之前,已经于友好本地配置了mono和jexus并且成功安排了asp.net
mvc项目,我为是负让当网上搜索的各种材料来安排环境而配备项目的,而那于网上为早已发出了好多立即地方的稿子,故使我就算想我是摹写还是无写为,但是想来想去,我或写一下咔嚓,因为网上的章最乱,不是新型版本,不是不行整齐而为可能会见遇到各种各样的问题,所以我操写一首自无至布置项目落得丝的篇章同时会交提示广大情节及解决方案,希望吗能融入好之思。

  b.
因为现在跨平台是一个倾向,网上上的食指过剩,我或者勾的糟糕,希望大家见谅,下面开始于管至部分经过吧。

2.Mono以及Jexus简单说明

  a.
Mono是由Novell公司(由Xamarin(已受微软收购并且以见面开源,前途同片光明)发起,一个从业为开创.NET在Linux上采用的开源工程。它富含了一个C#言语的编译器,一个CLR的运转时与相同组类库,并且实现了ADO.NET和ASP.NET,能够使之开发人员在Linux下用C#付出顺序。)主持的项目,该档的目标就是是开创同雨后春笋符合标准的ECMA(Ecma-334和Ecma-335)的.NET工具,包括C
#编译器和共同语言(CL 即 Common
Language)执行平台(Platform),与微软的.Net不同:Mono项目非但可以运行为Windows系统内,还足以运作为Linux、
FreeBSD、Unix、Mac OS X和Solaris,可以说凡是完结完全都的跨平台。

  b. Jexus即Jexus Web
Server,简称JWS,是重新linux平台上的平缓缓ASP.NET WEB服务器,Jexus for
linux有如下特征:

    b.1
支持多操作系统:Jexus最初的规划目标虽是”跨平台的ASP.NET
WEB服务器”,由于当window系统上,IIS已经是ASP.NET的精平台,所以时的Jexus以支持Linux和FreeBSD等非Windows系统为重中之重设计目标。

    b.2
高性能:“高性能”是Jexus的关键设计目标,虽然Jexus基于Mono环境运行,但Jexus并非任何是因为mono的.NET组件构成,对于涉及性的重中之重代码,Jexus非常巧妙的大气下了Linux/Unix本身的精粹特性,从代码层面确保了Jexus的性质优势,同时Jexus的框架特征也为胜性能提供了根基保证。Jexus不象XSP那样,纯HTML也亟需经过ASP.NET处理,更不象Apache和Nginx等服务器,需要通过插件的花样间接地对ASP.NET进行支撑,Jexus把HMTL静态文件处理模块、ASP.NET处理模块、静态文件高速缓存机制、epoll/poll数据传体制当开展了可观并,从架构本身入手,最充分限度地加强WEB服务器的拍卖能力跟传输速度。

    b.3
安全性:Jexus内核含有安全监察机制,绝大多数黑心访问在上网站前便会于Jexus直接Pass掉,这是Jexus有别于其它Web服务之如出一辙老特色。

    b.4
稳定性:从运行机制而言,Jexus系统中,有特意监测工作过程执行状态的保管单元,任何一个经过退出或其它一个ASP.NET网站应用程序域退出,就会吃管制单元发现以又开,从而保证了Jexus能够持续不中断的工作,旧程序本身而言,Jexus程序的代码力求言简意赅,Bug很少,同时,Jexus的每个版本在专业颁发前,都要进过严格的压力测试,影响平安的因素,几乎在规范发布前既已给所有破。

    b.5
功能强大,Jexus支持URL重写,支持多目标服务器的反向代理,支持PHP,支持GZIP压缩传输并且可以动用不同端口,不同虚拟路径,不同域名设置任意数量的网站。

    b.6
安装、配置、操作就为简单,服务社区化,各种问题都能够迅速的拍卖,有上佳的存续服务支持能力。

    b.7
在官网下还发出有便宜请查看:http://www.linuxdot.net/bbsfile-3084

      备注:部分内容来网络,感谢张善友等社区活跃人士。

    c.
Mono官网:http://www.mono-project.com/

    d.
Jexus官网:http://www.jexus.org/

    e.
工欲善其事必先利其器,那么下面我们来开展配备mono和Jexus并且安排MVC网站,本次操作需要采用的软件以及系统如下所示:虚拟机(Vmware)、虚拟机中装置之Centos系统(64号)(IP:192.168.37.138)、Xshell、Xftp至于如何运用它们我们下会说到。

3.  配置Mono需要的GDI+兼容API的库Libgdiplus

  a.
通过者简单的哦介绍后,我们开部署mono和jexus,在部署mono之前,首先来安排Libgdiplus。

  b. 使用XShell连接Centos,然后输入更新系统命令:yum -y update将低位版本的系统升级(我之自centos6.4升级至6.7),6.4产安排为得。

  c.
执行完毕之后,在设置必要之软件,命令如下:

    yum -y install gcc gcc-c++ bison pkgconfig glib2-devel gettext make libpng-devel libjpeg-devel libtiff-devel libexif-devel giflib-devel libX11-devel freetype-devel fontconfig-devel  cairo-devel

    备注:可能电脑已经装了这些文件,可用rpm -qa libexif*令查看,但是此间为保险万无一失,直接通实践。

  d.
执行了后过反到local下面创建属于自己之文书夹kencery,在这个文件夹下面创建libgdiplus文件夹,命令如下:

        d.1 (1):cd usr/local/  
 (2):mkdir kencery    (3):cd kencery/   (4):mkdir libgdiplus
 (5):cd libgdiplus/

  e.
使用命令wget下充斥最新版本的libgdiplus,命令如下,下载就之后用确保解压(至于安装包里面是什么内容,请自行行使命令ls
-l查看),如下图所示:

    e.1 wget http://download.mono-project.com/sources/libgdiplus/libgdiplus-4.2.tar.gz

    e.2 tar -zxvf libgdiplus-4.2.tar.gz

      图片 1

    备注:可以打开http://download.mono-project.com/sources/libgdiplus/斯网站查阅所有的文本,选择想只要下载的公文,我这里下载的是最新的libgdiplus。

  f.
进入libgdiplus-4.2(cd libgdiplus-4.2)文件下,执行下的命进行设置

    f.1 ./configure –prefix=/usr

    f.2 make

    f.3  make install

4.  配置Mono

  a.
Mono的安装于漫天 过程遭到时较丰富,请大家耐心安装。

  b.
cd跳反至文件夹kencery,在这个文件夹下面创建mono文件夹,命令如下:

    b.1 (1):cd /usr/local/kencery
 (2):mkdir mono  (3):cd mono/

  c.
使用命令wget下充斥最新版本的mono,命令如下,下载就后将保险解压(至于安装包里面是啊内容,请自行下命令ls
-l查看),如下图所示:

    c.1 wget http://download.mono-project.com/sources/mono/mono-4.4.0.148.tar.bz2

    c.2 tar -jxvf mono-4.4.0.148.tar.bz2

      图片 2

    备注:可以打开http://download.mono-project.com/sources/mono/其一网站查阅有的文件,选择想要下载的文本,我这里下载的是时髦的mono。

  d.
进入mono-4.4.0(cd mono-4.4.0)文件下,执行下的通令进行安装

    d.1 ./configure –prefix=/usr

    d.2 make
(发现会面世众多告诫,不用担心,不见面影响至项目安排)

    d.3 make install

  e. 上述命令执行到位之后,输入mono
-V如果带有mono的版本信息,则证实安装成功,版本信息如图所示:

    图片 3

5.  配置Jexus

  a.
当mono配置好而且测试没有问题之事态下,这时候我们就是好针对Jexus进行配置了。

  b.
cd跳反至文件夹kencery,在斯文件夹下面创建jexus文件夹,命令如下:

    b.1 (1):cd /usr/local/kencery
 (2):mkdir jexus (3):cd jexus/

  c.
使用命令wget下充斥最新版本的jexus,命令如下,下载好以后以包解压(至于安装包里凡是呀内容,请自行行使命令ls
-l查看),如下图所示:

    c.1 wget http://www.linuxdot.net/down/jexus-5.8.1.tar.gz

    c.2 tar -zxvf jexus-5.8.1.tar.gz

      图片 4

      备注:在官网下找到时的jexus下载。

  d.
进入jexus-5.8.1(cd jexus-5.8.1)文件下,执行下的命令进行设置

    d.1 sudo ./install

    备注:在实施install脚本时,jexus默认是设置到/usr/jexus/中,如果你想装至自定义之目录,可以在实行该脚本的时段长一个目参数(sudo
./install /usr/local/kencery/jexus/)

  e.
因为Jexus是一个服务,故而可以操纵总体服务之启航、停止、重开,命令如下,请自行测试

    e.1
启动 sudo /usr/jexus/jws start

    e.2
停止 sudo /usr/jexus/jws stop

    e.3 重启 sudo /usr/jexus/jws
restart

  f.
当然也得以控制指定网站的开行,停止,重开,命令如下:请自行测试

    f.1
启动 sudo /usr/jexus/jws start website(网站称)

    f.2 停止 sudo /usr/jexus/jws stop
sizeName(网站称)

    f.3 重开 sudo /usr/jexus/jws
restart sizeName(网站称)

  g.
使用命令:sudo /usr/jexus/jws start启动,如果jexus启动OK,则说明安装成功了。

  h.
当jexus启动成功,这时候我们怀念以外侧看jexus,但是浏览器访问出错,使用ping
域名是足以ping通,但是浏览器访问就是失败(提示:无法访问此网站,192.168.37.138之响应时间过长),这是怎么吧?这是以jexus默认是80端口,而系统装置好之后80端口是匪同意外界看的,故而访问不了,设置将80端口开放要外围可以拜。

    h.1 cd /etc/sysconfig/

    h.2 vim iptables
修改以保留,如图所示:

      图片 5

    h.3 重开服务  service iptables
restart

  i.
当h完成之后,重启jexus,输入如下网址访问,如图所示,则说明jexus安装了成功,接下去我们即便需要安排ASP.NET
MVC项目了。

    图片 6

  备注:快捷安装方式(一针对命令将会见安装成功Jexus)

    1.安装:sudo curl jexus.org/release/install | sh

    2.更新:sudo curl jexus.org/release/upgrade | sh

     说明:使用这种令的设置方式将会见吧Jexus安装到/usr/jexus 位置。

 

————————————-华丽的分割线—>下面用ASP.NET
MVC项目配置及Jexus下——————————————————-

6.  部署ASP.NET MVC项目

  a.
当mono配置好同时测试没有问题的状态下,这时候我们就是用往其配置MVC项目,那么什么样布置项目为?这块老重要

  b.
那么怎么布局一个初的网站先后吗?

    b.1
首先用树立一个”网站配置文件”,jexus安装之门径下(我本机安装在/usr/jexus)下发生一个siteconf文件夹,这其间的诸一个文件都是一个网站的布置文件,每一个安排文件就代表一个网站,在(/usr/jexus/siteconf/)中,就都起一个默认的网站配置文件,文件称吧:”default”;你可改者布局文件,也可以以这布局文件赋值并修改为一个新的站点。

    b.2
在安排文件中,有根本的老三件是早晚填项:

      port:端口号定义,端口号是一个平头,一般是80,也得以是65535之下的其余整数,但是是端口号必须没有另外服务程序占用。

      root:虚拟根路径和大体根路径的概念,根路径由少有的组成,中间用空格分开,空格前代表这网站访问时的杜撰根路径(一般都是”/”,不用修改),空格后是存放在这个网站内容的文本夹的物理路径(比如:”/var/www/default/”)

      hosts:域名定义,填写访问这个网站的域名,如果产生差不多只域名,域名中用英文逗号分开,同时还好用”泛域名”,比如:”*.mysite.com”。

      网站称:jexus把网站配置文件的称谓作为网站称。

    b.3
首先拷贝一卖default文件,拷贝到jexus安装之路径下的siteconf下,然后修改中的始末,命令如下:

      (1):cd /usr/jexus/siteconf/ 
     (2):cp default  mms     (3):vim mms  
 修改后保存如图所示:

      图片 7 
  

    b.3
这早晚在jexus中我们以网站配置文件已布置好,但是还没达标传网站,这时候我们需要达到传网站,上传的不二法门而齐图所示在/var/www/mms下,如果没公文,则创造即可。

  c. Visual Studio部署网站

    c.1
首先我们以下的型搬迁至Jexus下,此路不是Demo,是一个以实质上状况被运用的品类,故而结构就非截图了,只简单以主项目截图,项目布局如图所示:

      图片 8

    c.2
然后用VS的颁发意义,将品种揭示,和一般的路揭示一模子一样,这里虽无举行详细讲解了,请参见: http://blog.sina.com.cn/s/blog_8ce459cd0102v1kx.html,在昭示之时段请小心设置选项下的布,如图所示:(我正起布置始终不成事便是坐此配置的因由)

      图片 9

    c.3
项目揭示就以后,删除无用的文件信息,如图所示:

      图片 10 
 图片 11

  d.  将品种搬迁到Jexus

    d.1
首先在Linux下超过反至要停放项目的目录下(cd /var/www/mms),打开XFtp,将网站文件上传都此目录下,如图所示:

         
 图片 12

    d.2
其次我们需要开放8080端口,在篇章上面就说过怎么放端口80,参考开放即可,这里虽不以烦了。

    d.3
使用jexus的再开功能重新起动Jexus或者启动网站(./jws start或者./jws start mms(如果是访问还是起题目,则利用前的命令进行启动))

  e.  部署形成后拜项目

    e.1
 配备形成后拜访发现出现了如下图所展示之错,出现了杀乱之始末,这是盖Linux下是分轻重缓急写的,故而我们用配置jexus,使该大小写都足以变,那么会什么安排也?

      图片 13

    e.2
打开jexus的安排文件(vim jws),取消# export MONO_IOMAP=”all”这段内容之前头的#,保存,然后再次起动jexus(./jws restart),如下图所示:

      图片 14

    e.3
最后我们当浏览器中走访(http://192.168.37.138:8080/),如图所示:项目既彻底迁移至Jexus下。

      图片 15

    备注:我对项目进行了简约的操作,没有碰到其他问题。

  f.  说明:本博客部署的门类是ASP.NET
MVC5项目,还足以安排MVC3、4以及WebApi,欢迎大家尝试,如果碰到什么问题解决不了,欢迎联系我咨询,我们一齐学习。

    Jexus的向上挺快,以前当采用Jexus下要装mono,现在早已起了无待设置mono就好以的Jexus版本了(当然要赖让mono,只不过是Jexus内部内置了一个聊之mono环境),学习地方:http://www.cnblogs.com/yunei/p/5452120.html

      备注:本地曾经做测试,按照宇内大师兄的文章去贯彻,没有任何问题,详细请参见上面的博客。

    最后谢谢张善友的章为自身之思绪及落实:http://www.cnblogs.com/shanyou/p/3218611.html

 

    每天一点点且是进步

      如果文章哪里有问题,欢迎大家指出来,我会在第一时间修改。