CentOS下利用mono+xsp架构asp.net环境

来源:互联网 发布:淘宝发货无需物流 编辑:程序博客网 时间:2024/05/22 04:57
参考网址:http://mnt.conf.blog.163.com/blog/static/115668258201461910121507/
背景:由于本地有一些网站是用asp开发的,所以在linux基本上配置apache是跑不了的,经过查找资料发现在linux利用mono+xsp可以架构起asp环境。
1、简单吹水一下
1、Mono是一个由Novell公司主持的项目。该项目的目标是创建一系列符合标准ECMA的.Net 工具, 包括C#编译器和共同语言执行平台.与微软的.Net不同,Mono项目不仅可以运行于Windows系统内,还可以运行于Linux,,FreeBSD,Unix, Mac OS X和Solaris
2、linux搭建asp.net运行环境,是以apache作为通讯框架(当然nginx也可以的),mod_mono(apache的插件)作为接口桥,连接apache与xsp的通讯,xsp最终负责asp.net的服务处理,xsp会监听本地端口用来与mod_mono通讯,后者将处理结果返回给apache,apache再返回给客户端。
          需要安装的东西如下:CentOS,apache,mono,mod_mono,xsp

2、下载所需要的软件包
[root@cqs conf]# cd /home/cqs/source/
[root@cqs source]# wget http://download.mono-project.com/sources/libgdiplus/libgdiplus-2.10.tar.bz2
[root@cqs source]# wget http://download.mono-project.com/sources/mono/mono-2.10.8.tar.bz2
[root@cqs source]# wget http://download.mono-project.com/sources/xsp/xsp-2.10.tar.bz2
[root@cqs source]# wget http://download.mono-project.com/sources/mod_mono/mod_mono-2.10.tar.bz2
[root@cqs source]# wget http://apache.fayea.com/apache-mirror//httpd/httpd-2.2.27.tar.gz

3、安装软件包
安装libgdplus(libgdiplus是mono中的System.Drawing依赖的一个组件,用于显示web页面基本颜色等。)
[root@cqs conf]# cd /home/cqs/source/
[root@cqs source]# tar -xjvf libgdiplus-2.10.tar.bz2
[root@cqs source]# cd libgdiplus-2.10
[root@cqs libgdiplus-2.10 ]# ./configure --prefix=/usr/local/libgdiplus-2.10/
[root@cqs libgdiplus-2.10 ]#make
[root@cqs libgdiplus-2.10 ]#make install
[root@cqs libgdiplus-2.10]# cd /usr/local/
[root@cqs local]# ll -t
总用量 116
drwxr-xr-x.  3 root root 4096 4月  18 05:53 libgdiplus-2.10

安装mono
[root@cqs conf]# cd /home/cqs/source/
[root@cqs source]# tar -xjvf mono-2.10.8.tar.bz2
[root@cqs source]# cd mono-2.10.8
[root@cqs mono-2.10.8]#./configure --prefix=/usr/local/mono
[root@cqs mono-2.10.8]#make
[root@cqs mono-2.10.8]#make install
[root@cqs mono-2.10.8]#cd /usr/local/
[root@cqs local]# ll -t
总用量 116
drwxr-xr-x.  7 root root 4096 4月  16 08:44 mono
#Mono安装完成之后,可以用命令mono -V查看一下mono的安装情况,如果能够看到mono版本号等信息,说明Mono安装成功。
[root@cqs mono-2.10.8]# cd /usr/local/mono/bin/
[root@cqs bin]# mono -V
-bash: mono: command not found # 由于没配置默认文档,所以要把全路径打印出来才有效果
[root@cqs bin]# /usr/local/mono/bin/mono -V
Mono JIT compiler version 2.10.8 (tarball 2016年 04月 16日 星期六 08:38:30 CST)
Copyright (C) 2002-2011 Novell, Inc, Xamarin, Inc and Contributors. www.mono-project.com
        TLS:           __thread
        SIGSEGV:       altstack
        Notifications: epoll
        Architecture:  amd64
        Disabled:      none
        Misc:          softdebug
        LLVM:          supported, not enabled.
        GC:            Included Boehm (with typed GC and Parallel Mark)

安装apache(省略,详情查看之前的相关文档)

安装mod_mono
[root@cqs bin]# cd /home/cqs/source/
[root@cqs source]# tar -xjvf mod_mono-2.10.tar.bz2
[root@cqs source]# cd mod_mono-2.10
[root@cqs mod_mono-2.10 ]# ./configure --prefix=/usr/local/mod_mono/
[root@cqs mod_mono-2.10 ]#  make
[root@cqs mod_mono-2.10 ]# make install
[root@cqs mod_mono-2.10 ]# cd /usr/local/
[root@cqs local]# ll -t
总用量 116
drwxr-xr-x.  3 root root 4096 4月  18 05:53 mod_mono

安装xsp(xsp就是mod-mono-server。)
安装之前,可以先设置一下环境变量 vi /etc/profile #在最后加上下面这句
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
source /etc/profile 或者注销重新登陆一下
也可以在安装过程中使用这个export即可
[root@cqs bin]# cd /home/cqs/source/
[root@cqs source]# tar -xjvf xsp-2.10.2.tar.bz2
[root@cqs source]# cd xsp-2.10.2
[root@cqs xsp-2.10.2 ]# ./configure --prefix=/usr/local/xsp-2.10/
#进行到这一步时出现了"Configure: error: No C# compiler found"
#经过查找资料,需要安装mono,但是已经安装了,所以估计是配置的路径有问题,解决方案是
export PKG_CONFIG_PATH=/usr/local/mono/lib/pkgconfig/
重新配置
[root@cqs xsp-2.10.2 ]# ./configure --prefix=/usr/local/xsp-2.10/
[root@cqs xsp-2.10.2 ]#make
[root@cqs xsp-2.10.2 ]#make install
[root@cqs xsp-2.10.2 ]# cd /usr/local/
[root@cqs local]# ll -t
总用量 116
drwxr-xr-x.  3 root root 4096 4月  18 05:53 xsp-2.10
#安装成功

4、配置环境
[root@cqs modules]# vim  /usr/local/httpd-2.4.18/conf/httpd.conf
#在此文件中末尾添加上
include /etc/httpd/conf/mod_mono.conf
#重启服务器
[root@cqs modules]# /usr/local/httpd-2.4.18/bin/apachectl restart
#报了以下错误:
httpd: Syntax error on line 515 of /usr/local/httpd-2.4.18/conf/httpd.conf: Syntax error on line 8 of /etc/httpd/conf/mod_mono.conf: Cannot load /usr/lib64/httpd/modules/mod_mono.so into server: /usr/lib64/httpd/modules/mod_mono.so: undefined symbol: unixd_config
# 解决方案:暂未查找到
所以只能暂时屏蔽掉 include /etc/httpd/conf/mod_mono.conf
# 重启服务器
[root@cqs modules]# /usr/local/httpd-2.4.18/bin/apachectl restart














0 0