CentOS 5 yum Mono 2.4 (实战成功)
Linux和Microsoft向来是水不容,这些年Microsft和Novell合作后情况有了些许的改观。但是想要各自的应用程序能无缝地迁移估计 都是比较困难的事情。而MONO是由Novell公司发起的一个开源项目,用于在Linux环境中提供ASP.NET支持。
#
?
源码的安装依赖相应的开发包,所以在安装mono之装需先安装apache组件。
#
#yum -y install http*
?
Mono的安装有多种方式,Redhat? Linux下最简单直接 yum 安装,在CentOS5下面,可以通过下面的方式来 yum 安装,建立Mono的更新源
#
?
#vim /etc/yum.repos.d/Mono.repo?
?
[Mono]
name=Mono Stack (CentOS_5)
type=rpm-md
baseurl=http://download.opensuse.org/repositories/home:/mindtouch:/Mono/CentOS_5/
gpgcheck=1
gpgkey=http://download.opensuse.org/repositories/home:/mindtouch:/Mono/CentOS_5/repodata/repomd.xml.key
enabled=1
?
[root@localhost yum.repos.d]# rpm -qa|grep mono
?
[root@localhost yum.repos.d]# yum install mono* xsp mod_mono
?
Dependencies Resolved
====================================================================================================================================
Package??????????????????????????????? Arch?????????????????? Version?????????????????????????????? Repository??????????????? Size
====================================================================================================================================
Installing:
mod_mono?????????????????????????????? i386?????????????????? 1.2.1-1.el5.centos??????????????????? extras??????????????????? 36 k
mono-core????????????????????????????? i386?????????????????? 2.4-4.3?????????????????????????????? Mono????????????????????? 14 M
mono-data????????????????????????????? i386?????????????????? 2.4-4.3?????????????????????????????? Mono???????????????????? 1.5 M
mono-data-firebird???????????????????? i386?????????????????? 2.4-4.3?????????????????????????????? Mono???????????????????? 252 k
mono-data-oracle?????????????????????? i386?????????????????? 2.4-4.3?????????????????????????????? Mono???????????????????? 184 k
mono-data-postgresql?????????????????? i386?????????????????? 2.4-4.3?????????????????????????????? Mono???????????????????? 203 k
mono-data-sqlite?????????????????????? i386?????????????????? 2.4-4.3?????????????????????????????? Mono???????????????????? 157 k
mono-data-sybase?????????????????????? i386?????????????????? 2.4-4.3?????????????????????????????? Mono???????????????????? 160 k
mono-devel???????????????????????????? i386?????????????????? 2.4-4.3?????????????????????????????? Mono???????????????????? 1.8 M
mono-extras??????????????????????????? i386?????????????????? 2.4-4.3?????????????????????????????? Mono???????????????????? 1.5 M
mono-jscript?????????????????????????? i386?????????????????? 2.4-4.3?????????????????????????????? Mono???????????????????? 410 k
mono-locale-extras???????????????????? i386?????????????????? 2.4-4.3?????????????????????????????? Mono???????????????????? 783 k
mono-moonlight???????????????????????? i386?????????????????? 2.4-4.3?????????????????????????????? Mono???????????????????? 1.5 M
mono-nunit???????????????????????????? i386?????????????????? 2.4-4.3?????????????????????????????? Mono???????????????????? 223 k
mono-nunit-devel?????????????????????? i386?????????????????? 2.4-4.3?????????????????????????????? Mono????????????????????? 14 k
mono-web?????????????????????????????? i386?????????????????? 2.4-4.3?????????????????????????????? Mono???????????????????? 3.1 M
mono-web-devel???????????????????????? i386?????????????????? 2.4-4.3?????????????????????????????? Mono????????????????????? 14 k
mono-winforms????????????????????????? i386?????????????????? 2.4-4.3?????????????????????????????? Mono???????????????????? 3.0 M
monodoc??????????????????????????????? i386?????????????????? 2.4-4.3?????????????????????????????? Mono???????????????????? 7.3 M
monodoc-devel????????????????????????? i386?????????????????? 2.4-4.3?????????????????????????????? Mono????????????????????? 14 k
xsp??????????????????????????????????? i386?????????????????? 1.2.1-1.el5.centos??????????????????? extras?????????????????? 233 k
Installing for dependencies:
giflib???????????????????????????????? i386?????????????????? 4.1.3-7.1.el5_3.1???????????????????? base????????????????????? 39 k
httpd????????????????????????????????? i386?????????????????? 2.2.3-43.el5.centos?????????????????? base???????????????????? 1.2 M
libgdiplus???????????????????????????? i386?????????????????? 2.4-5.3?????????????????????????????? Mono???????????????????? 1.3 M
Transaction Summary
====================================================================================================================================
Install???? 24 Package(s)????????
Update?????? 0 Package(s)????????
Remove?????? 0 Package(s)????????
Total download size: 39 M
#
安装后应该得到:
[root@magic yum.repos.d]$ rpm -qa|grep mono
?
?
?
mono-winforms-2.4-4.3
mono-data-sqlite-2.4-4.3
mono-locale-extras-2.4-4.3
mono-moonlight-2.4-4.3
mono-nunit-2.4-4.3
mono-data-2.4-4.3
mono-core-2.4-4.3
monodoc-2.4-4.3
monodoc-devel-2.4-4.3
mono-data-sybase-2.4-4.3
mono-data-oracle-2.4-4.3
mono-devel-2.4-4.3
mono-extras-2.4-4.3
mono-nunit-devel-2.4-4.3
mono-web-devel-2.4-4.3
mod_mono-1.2.1-1.el5.centos
mono-data-firebird-2.4-4.3
mono-data-postgresql-2.4-4.3
mono-web-2.4-4.3
mono-jscript-2.4-4.3
#
?
?
虎子哥说 :对应到虚拟机的例子,你需要查看vim /etc/httpd/conf.d/mono.conf 里的配置写法,
注意这一条:MonoServerPath /usr/bin/mod-mono-server2
这一条就是要求你配置的mono的2.0.50727方式运行,否则默认会以1.1的方式运行。
?
[root@goosns conf.d]# cat mod_mono.conf
# mod_mono.conf
# Acthung! This file may be overwritten
# Use 'include mod_mono.conf' from other configuration file
# to load mod_mono module.
<IfModule !mod_mono.c>
LoadModule mono_module /usr/lib/httpd/modules/mod_mono.so
AddType application/x-asp-net .aspx
AddType application/x-asp-net .asmx
AddType application/x-asp-net .ashx
AddType application/x-asp-net .asax
AddType application/x-asp-net .ascx
AddType application/x-asp-net .soap
AddType application/x-asp-net .rem
AddType application/x-asp-net .axd
AddType application/x-asp-net .cs
AddType application/x-asp-net .config
AddType application/x-asp-net .Config
AddType application/x-asp-net .dll
DirectoryIndex index.aspx
DirectoryIndex Default.aspx
DirectoryIndex default.aspx
</IfModule>
?
Alias /mono "/usr/lib/xsp/test"
# MonoServerPath can be changed to specify which version of ASP.NET is hosted
# mod-mono-server1 = ASP.NET 1.1 / mod-mono-server2 = ASP.NET 2.0
# For SUSE Linux Enterprise Mono Extension, uncomment the line below:
# MonoServerPath mono "/opt/novell/mono/bin/mod-mono-server2"
# For Mono on openSUSE, uncomment the line below instead:
MonoServerPath mono "/usr/bin/mod-mono-server2"
# To obtain line numbers in stack traces you need to do two things:
# 1) Enable Debug code generation in your page by using the Debug="true"
#??? page directive, or by setting <compilation debug="true" /> in the
#??? application's Web.config
# 2) Uncomment the MonoDebug true directive below to enable mod_mono debugging
MonoDebug mono true
# The MONO_IOMAP environment variable can be configured to provide platform abstraction
# for file access in Linux.? Valid values for MONO_IOMAP are:
#??? case
#??? drive
#??? all
# Uncomment the line below to alter file access behavior for the configured application
MonoSetEnv mono MONO_IOMAP=all
#
# Additional environtment variables can be set for this server instance using
# the MonoSetEnv directive.? MonoSetEnv takes a string of 'name=value' pairs
# separated by semicolons.? For instance, to enable platform abstraction *and*
# use Mono's old regular expression interpreter (which is slower, but has a
# shorter setup time), uncomment the line below instead:
# MonoSetEnv mono MONO_IOMAP=all;MONO_OLD_RX=1
MonoApplications mono "/mono:/usr/lib/xsp/test"
<Location "/mono">
Allow from all
Order allow,deny
MonoSetServerAlias mono
SetHandler mono
SetOutputFilter DEFLATE
SetEnvIfNoCase Request_URI "\.(?:gif|jpe?g|png)$" no-gzip dont-vary
</Location>
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/javascript
</IfModule>
重启httpd服务器:
service httpd restart
或
/etc/init.d/httpd restart
rpm安装的XSP的目录结构
/usr/bin/xsp
/usr/lib/mono/gac/xsp
/usr/lib/xsp
/usr/share/doc/packages/xsp
?
rpm 安装 mono 的目录结构
/etc/mono
/usr/bin/mono
/usr/lib/mono
/usr/share/mono-1.0/mono
/usr/include/mono-1.0/mono
/usr/lib/xsp/test测试目录
?