CentOS 5.1下跑Mono和Asp.net的实现方法分享

下载编译环境:
yum install gcc bison pkgconfig glib2-devel gettext make httpd-devel gcc-c++ libstdc++-devel

下载并解压源代码:
wget http://ftp.novell.com/pub/mono/sources/mono/mono-2.6.3.tar.bz2
wget http://ftp.novell.com/pub/mono/sources/mod_mono/mod_mono-2.6.3.tar.bz2
wget http://ftp.novell.com/pub/mono/sources/xsp/xsp-2.6.3.tar.bz2
tar -jxvf mono-2.6.3.tar.bz2
tar -jxvf xsp-2.6.3.tar.bz2
tar -jxvf mod_mono-2.6.3.tar.bz2

安装mono环境:
cd /root/mydir/mono-2.6.3
./configure --prefix=/opt/mono; make ; make install
echo export PKG_CONFIG_PATH=/opt/mono/lib/pkgconfig:$PKG_CONFIG_PATH>>~/.bash_profile
echo export PATH=/opt/mono/bin:$PATH>>~/.bash_profile
source ~/.bash_profile

安装xsp:
cd /root/mydir/xsp-2.6.3
./configure --prefix=/opt/mono; make ; make install

安装mod_mono:
先用find / -iname apr*config命令查找出“--with-apr-config=/usr/bin/apr-1-config”(不知道--with-apr-config=/usr/bin/apr-1-config有什么用,好像不要也可以,麻烦知道的告诉一下小弟)
再执行下面的命令:
cd /root/mydir/mod_mono-2.6.3
./configure --prefix=/opt/mono --with-mono-prefix=/opt/mono --with-apr-config=/usr/bin/apr-1-config; make ; make install
cp /etc/httpd/conf.d/ /etc/httpd/conf/mod_mono.conf

selinux阻止了httpd对mod-mono-server的访问,所以执行下面的语句:
setsebool -P httpd_disable_trans=1

重启httpd服务器:
service httpd restart

在防火墙中开启80端口,允许同一个Lan的其他机器访问:
方法1.在不使用图形界面工具的时候,通过关闭防火墙来实现允许开放80端口
service iptables stop
(PS:我尝试过下面的方法,
vi /etc/sysconfig/iptables
添加:-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
service iptables restart
虽然在iptables -L中看到http
但无法从其他机器访问该服务器。
如果有谁成功,请告知小弟):

方法2.在安装有图形界面工具的情况下,用startx进入图形界面,用“Security Level and Firewall”开启80端口。

安装libgdiplus(xsp的测试页面中,有很多都需要libgdiplus):
yum install httpd build-essential gcc bzip bison pkgconfig glib-devel
glib2-devel httpd-devel libpng-devel libX11-devel freetype fontconfig
pango-devel ruby ruby-rdoc gtkhtml38-devel wget
wget http://ftp.novell.com/pub/mono/sources/libgdiplus/libgdiplus-2.6.2.tar.bz2
tar -jxvf libgdiplus-2.6.2.tar.bz2
cd /root/mydir/libgdiplus-2.6.2
./configure
make ; make install
echo export LD_LIBRARY_PATH=/usr/local/lib/:$LD_LIBRARY_PATH >>~/.bash_profile
source ~/.bash_profile

vi /opt/mono/etc/mono/config
添加节点:<dllmap dll="gdiplus.dll" target="/usr/lib/libgdiplus.so.0" />
否则会出现DllNotFoundException的异常。

测试:
一、测试mono
a.运行mono -V输出:
Mono JIT compiler version 2.6.3 (tarball Fri Apr 2 06:13:46 CST 2010)
Copyright (C) 2002-2010 Novell, Inc and Contributors. http://www.mono-project.com/
TLS: __thread
GC: Included Boehm (with typed GC and Parallel Mark)
SIGSEGV: altstack
Notifications: epoll
Architecture: x86
Disabled: none
b.运行mono-test-install输出:
Active Mono: /opt/mono/bin/mono
Your have a working System.Drawing setup
Your file system watcher is: System.IO.InotifyWatcher

二、测试Asp.Net服务器
a.测试是否能够执行aspx:
在/var/www/html/目录下建一个test.aspx页面,内容为
<%="Hello World!"%>
通过wget http://localhost/test.aspx来下载该页面的内容。

b.测试同一个Lan下其他机器能否访问:
用其他机器的浏览器打开http://ip/test.aspx

c.跑xsp自带的测试程序(多点几个页面,查看是否会出现gdiplus.dll DllNotFoundException的一场):
1.修改Apache的配置,开放防火墙8080端口
Listen 8080
NameVirtualHost *:8080
<VirtualHost *:8080>
ServerAdmin hlfstephen@gmail.com
DocumentRoot /var/www/test/
ServerName local.mydomain.com
ErrorLog logs/local.mydomain.com-error_log
CustomLog logs/local.mydomain.com common
</VirtualHost>
2.复制/opt/mono/lib/xsp/test目录到var/www/下
3.service httpd restart
4.用浏览器打开http://ip:8080/

参考:
http://blog.rubypdf.com/2009/10/23/how-to-install-mono-2-4-2-3-on-centos-5/
http://blog.rubypdf.com/2009/10/23/how-to-install-xsp-and-integrate-xsp-with-apache-2-under-centos-5/
http://blog.bennyland.com/2010/02/06/serving-asp-net-pages-in-apache-on-centos-5/
http://mingster.com/site/?q=content/mono-2x-centos-5
http://mono-project.com/DllNotFoundException
http://mono-project.com/Config_DllMap

转载请保留链接: CentOS 5.1下跑Mono和Asp.net的实现方法

(0)

相关推荐

  • Win7下屏蔽禁用鼠标滚轮的两种方法

    鼠标滚轮是鼠标中间的一个可以自由滚动的球,我们可以在浏览网页或者文本的时候用鼠标滚轮向前或向后进行浏览,它有很多的功能可以带来很大的方便,不过还是有很多用户不喜欢这个鼠标滚轮,就问说要如何禁用鼠标滚轮 ...

  • Windows 2008中IIS7中"检测到在集成的托管管道模式下不适用的ASP.NET设置"解决

    HTTP 错误 500.23 - Internal Server Error 检测到在集成的托管管道模式下不适用的 ASP.NET 设置。 解决方法是: 打开该网站对应的iis中的【应用程序池】,托管 ...

  • CentOS 5.5下如何编译安装新内核?

    第一步:下载内核 传送门:地址.笔者下载的是3.2.84版本 第二步:解压编译内核 由于我下的是.tar.xz文件,用tar命令不能直接解压. 1.我的系统里不带xz解压软件,先下载xz-5.0.3. ...

  • CentOS 6.5下挂载使用NTFS文件系统

    CentOS 6.5下挂载使用NTFS文件系统 操作方法 01 根据操作系统类型,下载相应的RepoForge的yum源rpm软件包:repoforge.org 02 安装下载到的rpm软件包 [ro ...

  • win7窗口跑到最右侧程序跑到屏幕外面去的解决方法

    有的时候一些窗口自己双击或是做什么操作时,窗口跑到最右侧,也就是程序跑到屏幕外面去了。这时不管我们用鼠标跑到屏外去拉,还是任务管理顺使这个程序最大化都无法把这个程序拉回来。 鼠标我们一直向右侧移动时发 ...

  • Win8.1系统下IE11无法输入网银密码的解决方法

    小编这里要跟大家分享的是关于Win8.1系统下IE11无法输入网银密码的解决方法,网银是如今很多用户都经常要使用到的工具,网络购物给现代人带来了很多便利,一般在使用网银的时候我们都会下载一个“网上银行 ...

  • linux 下制作可启动 img/iso 文件的方法

    制作镜像文件有三种方法,cp, cat, dd 和其它专用工具。cp ,cat 和 dd都可以从设备复制文件来创建镜像。而 dd 命令更为强大,可以通过指定块大小,块多少来直接创建镜像。 IMG 文件 ...

  • Ubuntu14.4下Sublime Text 3无法输入中文解决方法

    本教程是向大家介绍Ubuntu14.4下Sublime Text 3无法输入中文解决方法,不是很难,方法很实用,同时感谢原创作者LunnLew的分享,希望这篇教程对大家有所帮助! 工具/原料 Ubun ...

  • win8系统下快捷键win+X没反应的解决方法

    大家都知道Windows8系统没有开始莱单功能,虽然找到了恢复Windows 8开始菜单的设置方法,但是我觉得设置挺烦人的。没有了开始菜单我用快捷键版的开始莱单就是了!就也是Win+X,这快捷键被我们 ...