本文最后更新于:2015-05-21 14:00:00
原文:http://www.yaosansi.com/post/mono4.0.1-jexus5.6-on-centos7

鉴于微软最近对.Net家族的大开源策略,最近有时间正好测试一下Mono4与Jexus5.6在CentOS7上安装与使用。

Mono简介

Mono是一个由Novell公司(由Ximian发起,并由Miguel de lcaza
领导的,一个致力于开创.NET在Linux上使用的开源工程。它包含了一个C#语言的编译器,一个CLR的运行时,和一组类库,并实现了 ADO NET和ASP NET。能够使得开发人员在Linux用C#开发程序。)
目前最新版本为:Mono 4.0.1,由于.Net的开源,Mono4.0是首个包含来自微软开源 .Net 代码的版本,也是第一个缺省启用 Csharp 6.0 的 Mono 版本

同时还做了以下改进:

  • 采用微软的开源代码
  • 支持 C# 6.0
  • 优化浮点数
  • 不再支持 2.0、3.5 和 4.0 汇编器
  • 更新 IKVM
  • 更轻量级的调试器开销
  • 提供最基本的 PowerPC64 LE 支持

Mono 4.0.1 只是在4.0基础上进行一些BUG修复和功能改进。

Jexus简介

Jexus 即 Jexus Web Server,简称JWS,是Linux平台上 的一款ASP.NET WEB服务器,
是ASP.NET跨平台部署的一种可选方案,作者宇内流云是想给大家提供一个强劲、坚固、免费、易用的Linux ASP.NET服务器。

与其它WEB服务器相比,Jexus不但具有跨平台ASP.NET服务器这样的标志性特征,同时还拥有内核级的安全监控、入侵检测、URL重写、无文件路由等一系列重要功能和专有特性。

目前Jexus最新版本为5.6.4正式版。

安装Mono和Jexus

##安装Mono

在Shell root 用户权限下输入下列命令:

1
2
rpm --import "http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF"
yum-config-manager --add-repo http://download.mono-project.com/repo/centos/

如果提示找不到yum-config-manager博客园的张善友老师已经给出了解决方案

因为系统默认没有安装这个命令,这个命令在yum-utils 包里,可以通过命令yum -y install yum-utils 安装

1
yum -y install yum-utils

引入测试版本可以使用如下命令:

1
yum-config-manager --add-repo http://download.mono-project.com/repo/centos-alpha/

安装有以下几个选择:

  • mono-devel 安装编译版本
  • mono-completepv 安装所有软件包,这可以解决大多数情况下的”程序集未找到”错误。
  • referenceassemblies-pcl 安装支持PCL编译的版本。
  • ca-certificates-mono 如果需要HTTPS连接和SSL证书,请使用版本。

我们安装所有软件包

1
yum –y install mono-complete

安装成功后使用mono –V 确认已经成功安装

1
2
3
4
5
6
7
8
9
10
11
[root@yaosansi]# mono -V
Mono JIT compiler version 4.0.1 (tarball Wed May 20 12:03:20 CST 2015)
Copyright (C) 2002-2014 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com
TLS: __thread
SIGSEGV: altstack
Notifications: epoll
Architecture: x86
Disabled: none
Misc: softdebug
LLVM: supported, not enabled.
GC: sgen

如果安装一切正常,但输入 mono -V 时提示 -bash: mono: command not found, 可以使用如下命令测试:

1
[root@yaosansi ]# /opt/mono/bin/mono -V

并参考本文中的设置Mono环境变量一节。

##安装Jexus

###下载

下载地址是:http://www.linuxdot.net/down/jexus-5.6.4.tar.gz

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

###解压

1
tar -zxvf jexus-5.0.tar.gz

安装

1
2
cd jexus-5.6.4
./install

确认安装成功

默认Jexus是绑定0.0.0.0的ip,所以可以通过服务器的ip来访问。(如果无法访问请确认是否由于其它程序占用了默认的80端口)

1
http://192.168.8.2

Jexus也提供了一个info地址,用来检测服务器状态和运行时间

1
http://192.168.8.2/info

Welcome to Jexus!
Jexus web server uptime: 0 days, 0:44:16

升级安装

启动、停止和重启

启动 /usr/jexus/jws start

停止 /usr/jexus/jws stop

重启 /usr/jexus/jws restart

通过一键安装脚本

Jexus官方论坛网友(Simple)提供

CentOS6版本

CentOS7版本

一键安装步骤

执行以下命令,输入对应的Mono及Jexus完整版本即可。脚本将正动从官方下载、编译和安装,需要耐心等待一段时间。

1
2
3
4
cd /tmp
wget http://security.ivannet.com/linux/shell/centos7.x_mono_jexus_default.sh
chmod +x centos7.x_mono_jexus_default.sh
./centos7.x_mono_jexus_default.sh

比如目前Mono输入:4.0.1 Jexus输入:5.6.4

安装完成后使用上面的方法验证是否安装成功。

设置Mono环境变量

安装脚本将Mono安装到了/opt/mono/,需要将Mono的目录加入系统$PATH变量

方法一

/etc/profile文件中添加变量【对所有用户生效(永久的)】

1
[root@yaosansi ~]# vi /etc/profile

在文件末尾加上如下两行代码

1
2
PATH=/opt/mono/bin:$PATH
export PATH

立即生效

1
[root@yaosansi ~]# source /etc/profile

方法二

在/etc/profile.d/目录下创建一个Mono的配置
创建一个新的mono.sh,并在这个文件内初始化环境变量

1
export PATH=$PATH:/opt/mono/bin

要是刚才的修改马上生效,需要执行以下代码

1
[root@yaosansi profile.d]# source mono.sh

特别感谢

感谢宇内、张善友以及其它热心网友对.Net跨平台的突出贡献。

参考