看到标题我就觉得有人会蛋疼。。。哪有这么奇葩的配置方式,而且纠结了我一天多。起因是微信公众号的开发只支持80端口(何等操蛋),不能用花生壳等内网端口映射工具,项目需求ASP.NET,我又只有一台Centos系统的固定IP服务器。
服务器提供商:阿里云
系统环境:CentOS 7.0
折腾目标:配成Asp.net MVC 4.0
参考文章:http://down.chinaz.com/server/201109/1064_1.htm
http://www.cnblogs.com/jameszou/archive/2013/05/18/3085754.html
http://www.cnblogs.com/wang_yb/archive/2012/08/22/2650960.html
http://www.cnblogs.com/hjf1223/archive/2011/02/20/mono_linux.html
http://www.mono-project.com/docs/getting-started/install/linux/#centos-fedora-and-derivatives
开干:
1、安装Apache、MySQL这个就不写了,请参照本文的第一个参考文章,CentOS 7.0 MySQL的安装方式和文章说的稍微有些不同,网上也容易搜到
2、安装Mono,这个参照mono的官方文档安装即可,就是本文的最后一个参考文章,用root用户输入如下两条命令将MONO的项目地址加进去,然后yum install mono即可:
rpm --import "http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF"
yum-config-manager --add-repo http://download.mono-project.com/repo/centos/
这个方法只适合CentOS 7.0,因为这个方法安装的Mono是最新版的,需要的某些依赖包也要求很新的版本,有些包的很新的版本已经不支持CentOS 6.X了,如果在6.X上安装,就得下载稍微早一点的MONO源码包,自己编译,本文的几个参考文献中,都是用的这个方法。
3.安装mono对Apache的支持模块。在终端中输入yum lis | grep mod_mono,找到Apache的支持模块,我的是apache2-mod_mono.x86_64 用yum install命令安装即可,安装过程中会提示xsp是依赖包,所以不需要考虑我的几个参考文献中安装xsp的步骤。
4.我用的Apache 2.4.6,Mono 3.12.1,如果只想实现Asp.Net MVC,是基本不需要什么配置的,只需要在/etc/httpd/mod_mono.conf中添加两行:
MonoAutoApplication enabled
ForceType application/x-asp-net
第一行是启动Asp.NET,第二行是使用MVC,其实ASP.NET MVC就已经OK了,然后我又加了如下一行,
MonoServerPath "/usr/bin/mod-mono-server4"
/usr/bin/目录下有mod-mono-server,mod-mono-server2,mod-mono-server3,mod-mono-server4,我猜不设置默认的就是mod-mono-server,但是也是使用的最低版本ASP.NET
2.0,改成4了之后,就是4.0了。最后我的mod_mono.conf文件如下:
# mod_mono.conf # Achtung! 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/lib64/httpd/modules/mod_mono.so MonoAutoApplication enabled MonoServerPath "/usr/bin/mod-mono-server4" ForceType application/x-asp-net </IfModule> <IfModule mod_headers.c> Header set X-Powered-By "Mono" </IfModule> 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 .vb AddType application/x-asp-net .master AddType application/x-asp-net .sitemap AddType application/x-asp-net .resources AddType application/x-asp-net .skin AddType application/x-asp-net .browser AddType application/x-asp-net .webinfo AddType application/x-asp-net .resx AddType application/x-asp-net .licx AddType application/x-asp-net .csproj AddType application/x-asp-net .vbproj 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
到这里,就已经配置完了,写的不长,是站在参考文章的各个巨人的肩膀上成的,但是也折腾了很久,记一下吧