【二、在Ubuntu下安装Mono】
Linux有个开源的.NET运行时,叫做Mono(),可以支持在Linux上运行.NET应用程序。
仍然按上述方法输入下列命令安装Mono及C#编译器,软件包详情:
sudo apt-get install mono-gmcs
安装完后可以输入“mono -V”查看安装的mono的版本(注意V是大写的),当然也可以写个C#的ConsoleApp看看,可以用下列命令编译C#代码。
gmcs test.cs
如果程序没有问题的话则会生成test.exe,可以通过如下命令执行。当然也可以在Windows上编译好exe文件后复制到Linux上执行也是可以的。
mono test.exe
接下来根据自己需要的版本选择安装Apache对ASP.NET 2.0或者ASP.NET 4.0的支持,mono-apache-server2为ASP.NET 2.0的支持,mono-apache-server4是ASP.NET 4.0,两者可以同时存在,切换需要在Apache的配置文件中切换。软件包详情:
sudo apt-get install mono-apache-server2
不知道为什么,安装到最后会卡在这个地方
只能通过Ctrl+Z强制退出,然后输入“sudo reboot”重启服务器,不过Linux服务器很快就能重启完
之后再安装Apache的模块libapache2-mod-mono即可。当然,mono-gmcs、mono-apache-server2、libapache-mod-mono都是可以一起安装的,不过要注意mono-apache-server2和libapache-mod-mono的顺序,如果mono-apache-server2在libapache-mod-mono之后的话,由于依赖项的原因,libapache-mod-mono会现在自动选择安装mono-apache-server4。而且,如果一起装的话,在上述卡住的位置Ctrl+Z重启后,libapache-mod-mono并没有配置完成导致很多操作无法执行,还需要执行“sudo dpkg --configure -a”这句命令才行。软件包详情:
sudo apt-get install libapache2-mod-mono
不过安装完如果打开网站发现还是无法执行,其实是没有配置ASP.NET应用程序。虽然现在支持自动配置应用程序,但是还是需要修改/etc/apache2/mods-available/mod_mono.conf文件。(原文见:)当然如果你会手动配置应用程序的话也可以在该文件中手动配置应用程序(下同)。
sudo vim /etc/apache2/mods-available/mod_mono.conf
按键盘上的i键启用vim的编辑模式,由于mono-server2-hosts.conf文件中已经对很多参数进行了配置,所以仅需要按图中的添加“MonoAutoApplication enabled”一行即可。此外,如果你的网站中还有其他的文件格式(比如HttpHandler经常使用.axd),请添加在第一行后边,另外如果网站默认文件不是index.aspx还需要修改第二行后的文件名。注意,由于Linux是区分大小写的,所以切记不要把大小写搞错。
如果服务器上还安装了ASP.NET 4.0的支持(mono-apache-server4),并且需要切换到ASP.NET 4.0,那么仅需要修改最后一行,将2改为4即可。
修改完后按Ctrl+C结束编辑模式,然后按冒号键(:)进入命令模式,输入w保存文件,然后再次按冒号键,再按q键退出vim。
最后执行下述命令重启Apache服务器即可。
sudo /etc/init.d/apache2 restart