在RedHat Enterprise 4 上安装 Mono1.9 (二)

最近由于项目的需要,希望能够在Linux系统上面运行我们的.Net项目,因此作了一些移植的尝试。也希望能过和园子里的朋友一起分享移植和使用Mono的经验。

上一篇文章(http://www.cnblogs.com/xingzhixp/archive/2008/05/24/MonoRehel41.html),我们已经安装好了Mono,为了使用ASP.Net,我们还必须安装和配置Apache。

Apache的安装过程,我就不说了,大家参考Apache的文档就可以。但是Mono似乎对Apache的版本很挑剔的,安装和配置不如Windows方便。我们先后安装了Apache 2.0.49,2.2.8 和2.0.52三个版本。
在2.0.49版本下,当我们运行Mono测试站点时,总是提示服务不可用。
在2.2.8版本下,Apache加载Mono组件时,提示错误:
Syntax error on line 8 of /etc/httpd/conf.d/mod_mono.conf: Cannot load /usr/lib/httpd/modules/mod_mono.so into server: /usr/lib/httpd/modules/mod_mono.so: undefined symbol: apr_sockaddr_port_get
最终,我们在2.0.52版本下成功运行了ASP.net的测试站点。

为了让Apache运行Asp.Net,需要修改Apache的配置文件,以便加载Mono的组件mod_mono.so.
找到Apache的配置文件,通常在Apache安装目录下,你可以找到httpd.conf文件。在RedHat E4 中这个文件位于/etc/httpd/conf/httpd.conf。
在文件中加入一句: Include /conf.d/mod_mono.conf ,(这是Mono配置文件的默认安装位置)。
在RedHat E4中,加了这一句后,启动Apache过程中会提示一个错误:can't open file /conf.d/mod_mono.conf 。后来我们发现在配置文件中有一句:Include /etc/httpd/conf.d/*.conf .因此我们把这个文件Copy到 /etc/httpd/conf.d/mod_mono.conf , 在Httpd.conf中去掉这个配置,再重新启动Apache,一切正常。

至此,Apache的配置完成。为了测试,我们把 /usr/lib/xsp/test 目录Copy到Apache的主目录,通常是Apache的安装目录/htdocs/,而在RedHatE4中是位于 /var/www/html/,好了,在浏览器打开页面http://localhost/test/index.aspx 应该一切顺利,我们看到了Asp.net页面。这是默认的.Net1.1的页面,为了在使用Asp.net 2.0, 我们还需要在httpd.conf 中加入:MonoServerPath /usr/bin/mod-mono-server2。现在我们可以打开2.0的页面了,看看http://localhost/test/index2.aspx 是否正常?

如果一切顺利,我们可以开始移植我们的系统了。接下来,我们将继续分享系统移植的过程。
posted @ 2008-05-24 18:00 行知 阅读(...) 评论(...) 编辑 收藏