【五、在CentOS下的操作】
CentOS的软件管理程序是yum(这里使用的CentOS是Azure上提供的CentOS 6.3)。
首先还是安装Apache。
sudo yum install httpd
与openSUSE类似,安装完需要自己手动配置服务自启动。
sudo chkconfig --levels 235 httpd on
然后立即启动Apache服务。
sudo /etc/init.d/httpd start
现在再用浏览器访问服务器地址就可以正常访问Http服务器了。
但是CentOS官方没有打包好的mono的rpm包,所以比较好的方式是自己编译。
首先配置好编译的环境。
sudo yum install gcc gcc-c++ bison pkgconfig glib2-devel gettext make freetype-devel fontconfig-devel libX11-devel libpng-devel libjpeg-devel libtiff-devel giflib-devel libexif-devel cairo-devel httpd-devel
可能会提示需要升级kernel-headers,但是系统可能默认禁止了核心的包,所以如果出现上述命令无法执行安装的话,还需要在上一条命令之后附加“ --disableexcludes=main”,即如下的形式。
sudo yum install gcc gcc-c++ bison pkgconfig glib2-devel gettext make freetype-devel fontconfig-devel libX11-devel libpng-devel libjpeg-devel libtiff-devel giflib-devel libexif-devel cairo-devel httpd-devel --disableexcludes=main
如果一切安装成功,可以执行下列语句下载需要安装组件的源码包并解压缩。
cd /usr/src/ sudo wget http://download.mono-project.com/sources/libgdiplus/libgdiplus-2.10.tar.bz2 sudo wget http://download.mono-project.com/sources/mono/mono-2.10.8.tar.bz2 sudo wget http://download.mono-project.com/sources/xsp/xsp-2.10.tar.bz2 sudo wget http://download.mono-project.com/sources/mod_mono/mod_mono-2.10.tar.bz2 sudo tar -jxf libgdiplus-2.10.tar.bz2 sudo tar -jxf mono-2.10.8.tar.bz2 sudo tar jxf xsp-2.10.tar.bz2 sudo tar jxf mod_mono-2.10.tar.bz2
编译并安装libgdiplus。
cd /usr/src/libgdiplus-2.10
sudo ./configure --prefix=/usr
sudo make ; sudo make install
然后编辑/etc/ld.so.conf文件,添加一行“/usr/lib/”,如下图所示,保存之后再执行如下命令,从而使系统可以将libgdiplus.dll自动映射到对应的so文件中。(原文见:)
sudo ldconfig
然后是Mono。
cd /usr/src/mono-2.10.8
sudo ./configure --prefix=/usr
sudo make ; sudo make install
接下来安装xsp。
export PKG_CONFIG_PATH=/usr/lib/pkgconfig cd /usr/src/xsp-2.10 sudo ./configure --prefix=/usr sudo make ; sudo make install
然后安装mod_mono。
cd /usr/src/mod_mono-2.10 sudo ./configure --prefix=/usr sudo make ; sudo make install
然后再修改“/etc/httpd/conf/mod_mono.conf”这个文件,与Ubuntu上同名的配置文件配置相同。不过由于不像Ubuntu下有现成的配置文件,所以需要在文件中添加如下两行,由于安装的时候自动安装了2.0和4.0的支持,所以可以将如下的2换为4即可启用ASP.NET 4.0:
MonoServerPath "/usr/bin/mod-mono-server2" MonoAutoApplication enabled
然后将配置文件复制到Apache的配置文件目录中:
sudo cp /etc/httpd/conf/mod_mono.conf /etc/httpd/conf.d/
由于CentOS自带的SELinux的原因,使得Apache无法连接到mod-mono-server,所以我们现在还需要配置SELinux。当然,这里为了简单就仅仅禁用SELinux,有兴趣的可以自己创建安全策略,使mod-mono-server可以生效。这里修改/etc/sysconfig/selinux文件。将“SELINUX=enforcing”修改为“SELINUX=permissive”或“SELINUX=disabled”,例如下图,保存重启系统即可。
之后就可以通过SSH将网站打包上传上去就可以直接访问了。不过需要注意的是,CentOS上的Apache默认的根路径在“/var/www/html”下,当然也可以在“/etc/httpd/conf/httpd.conf”文件中修改存放网站根目录的路径。
【六、相关链接】
1、配置Linux(Apache) + mono 下运行 asp.net:
2、openSUSE上安装Mono并发布ASP.Net程序:
3、32和64位的CentOS 6.0下 安装 Mono 2.10.8 和Jexus 5.0:
4、Mono环境下不支持中文的解决方法: