Tuesday, June 27, 2017

使用Jexus+Mono在CentOS上搭建ASP.net Web服务器

如何搭建asp.net运行环境,我相信很多人会想到使用Windows Server系统和IIS来搭建,不可否认,asp.net是微软出的东西,当然用微软的系统搭建最合适了。如果你又想使用asp.net,又想使用Linux,那么是不是就行不通了呢?答案当然是否定的。因为我们有Mono,有了Mono,asp.net就可以运行在非Windows系统下了。

什么是Mono:Mono是.NET Framework 的一种开源实现。Mono项目将使开发者用各种语言(C#,VB.NET等)开发的.NET应用程序,能在任何Mono支持的平台上运行, 包括Linux, Unix。Mono项目将使大家能开发出各种跨平台的应用程序, 并能极大提高开源领域的开发效率。作为一个有机的.NET整体, 它包括一个C#编译器, 一个公用语言运行时环境, 以及相关的一整套类库,他甚至还包括IDE、调试工具和文档浏览器。Mono项目的网址是:http://www.mono-project.com/

什么是Jexus:Jexus 是一款跨平台的WEB服务器力作,它功能强大,操作简单,具有广泛的适应性和良好的实用性。Jexus 是Linux/Unix平台真正意义上的ASP.NET WEB服务器,是基于Linux/Unix平台建设ASP.NET网站的必然选择和最优方案!Jexus 内置安全监测与自动防控功能,能够为各类网站提供更多的安全保障。官方社区:http://www.jexus.org/http://www.linuxdot.net/

一、更新系统

yum –y update

二、安装Mono源码安装需要的库

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

三、安装Mono需要的GDI+兼容API的库Libgdiplus

cd /usr/local/src/

wget http://download.mono-project.com/sources/libgdiplus/libgdiplus-2.10.tar.bz2

tar -jxvf libgdiplus-2.10.tar.bz2

cd libgdiplus-2.10

./configure –prefix=/usr

make

make install

四、安装 mono

cd /usr/local/src/

wget http://download.mono-project.com/sources/mono/mono-2.10.9.tar.bz2

tar -jxvf mono-2.10.9.tar.bz2

cd mono-2.10.9

./configure –prefix=/usr

make

make install

输入 mono -V 如有mono版本信息,则安装成功.

如果是64位版本的CentOS,在后续安装好Jexus 5,启动的时候会发生以下错误:

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.Stdlib
StackTrace is:
at A.G.A (System.String[] A) [0x00000] in :0
IsTerminating: True

建议你运行下命令ldconfig,建议大家在安装mono后,都 ldconfig一下 。(ldconfig命令的用途,主要是在默认搜寻目录(/lib和/usr/lib)以及动态库配置文件/etc/ld.so.conf内所列的目录下,搜索出可共享的动态链接库(格式如前介绍,lib*.so*),进而创建出动态装入程序(ld.so)所需的连接和缓存文件.缓存文件默认为/etc/ld.so.cache,此文件保存已排好序的动态链接库名字列表. )

另外有一点也非常重要,要在编译Mono的是指定安装到/usr(./configure –prefix=/usr),如果安装到一个系统根本”不了解”的文件夹,仅ldconfig都不行,还要在/etc/ld.so.conf文件或/etc/ld.so.conf.d 中添加路径后再 ldconfig才行呢。

ldconfig几个需要注意的地方!

1. 往/lib和/usr/lib里面加东西,是不用修改/etc/ld.so.conf的,但是完了之后要调一下ldconfig,不然这个library会找不到

2. 想往上面两个目录以外加东西的时候,一定要修改/etc/ld.so.conf,然后再调用ldconfig,不然也会找不到

比 如安装了一个mysql到/usr/local/mysql,mysql有一大堆library在/usr/local/mysql/lib下面,这时就 需要在/etc/ld.so.conf下面加一行/usr/local/mysql/lib,保存过后ldconfig一下,新的library才能在程 序运行时被找到。

3. 如果想在这两个目录以外放lib,但是又不想在/etc/ld.so.conf中加东西(或者是没有权限加东西)。那也可以,就是export一个全局变 量LD_LIBRARY_PATH,然后运行程序的时候就会去这个目录中找library。一般来讲这只是一种临时的解决方案,在没有权限或临时需要的时 候使用。

4. ldconfig做的这些东西都与运行程序时有关,跟编译时一点关系都没有。编译的时候还是该加-L就得加,不要混淆了。

5. 总之,就是不管做了什么关于library的变动后,最好都ldconfig一下,不然会出现一些意想不到的结果。不会花太多的时间,但是会省很多的事

五、安装Jexus

Jexus安装非常简单,仅仅就是一个复制、粘帖和注册全局程序集的过程。
注意:以下所有操作请用root身份。

wget http://www.linuxdot.net/down/jexus-5.3.1.tar.gz
tar -zxvf jexus-5.3.1.tar.gz
cd jexus-5.3.1
sudo ./install

六、运行测试

复制完Jexus的文件后,Jexus就可以正常工作了,甚至连进一步的配置也完全不需要。
强调:如果你服务器安装有其它的WEB服务器,而且该服务正在运行,请停止它,以免造成端口冲突而造成Jexus无法启动。

如果是最新安装,请首先建立一个默认的网站文件夹:/var/www/default,并在里面放一个首页文件,如index.htm或default.htm
进入jexus工作文件夹,启动jexus,命令如下:
cd /usr/jexus
sudo ./jws.start
启动后,请尝试访问一下这个网站,看看是否能看到你放的首页或者jexus的欢迎页,网址是:“http://服务器IP地址”或者“http://服务器IP地址/info”。

1、配置站点

使用WinSCP 访问服务器(大家不必拘泥,你也可以搭建一个FTP来进行上传)
打开/usr/jexus/siteconf
在里面有个默认的default文件一个站点对应一个配置文件(注意大小写)
配置文件详细说明

2、控制站点

使用putty连接服务器
cd /usr/jexus
./jws start 刚才你添加的配置文件

七、配置,具体参考Jexus 自带Readme文件

让jexus能够读取中文乱码文件名
1、安装GBK等字符集: 步骤一:修改:/var/lib/locales/supported.d/local文件,添加一行,内容是“zh_CN GBK”。(当然,还可以加上“zh_CN GB18030”等); 步骤二:运行命令 sudo locale-gen 2、在jws.start和jws.restart两个文件中,添加一个环境变量:“export ONO_EXTERNAL_ENCODINGS=”gbk:gb18030″”
注:以上方法适用于jexus 5.3.1

参考文章:
32和64位的CentOS 6.0下 安装 Mono 2.10.8 和Jexus 5.0
使用Jexus+Mono在FreeBSD上搭建asp.net web服务器

Leave a Reply

Your email address will not be published. Required fields are marked *