在 Linux 下运行 ASP.NET 2.0

技术分享 Story 76浏览 0评论
摘要

在 Linux 下运行 ASP.NET 2.0

https://help.ubuntu.com/community/ModMono

在 Linux 下运行 ASP.NET 2.0
1. 到 http://tw.releases.ubuntu.com/edgy/ 下载 PC (Intel x86) server install CD ,将下载得到的 ubuntu-6.10-server-i386.iso 文件刻录一张光盘。
2. 用这张光盘在 IBM Netfinity 7000 服务器上安装 Ubuntu 6.10 (Edgy) 。
3. 安装 Apache2:
sudo apt-get install apache2 
4. 安装基本的编译环境:
sudo apt-get install build-essential checkinstall
5. 安装 libapache2-mod-mono:
最简单的方法就是使用以下命令:
sudo apt-get install libapache2-mod-mono
但是目前在 Ubuntu 6.10 中这条命令会报错。只好自己编译一个了:
md src
cd src
sudo apt-get install apache2-threaded-dev mono-xsp2 mono-apache-server mono-apache-server2
wget http://go-mono.com/sources/mod_mono/mod_mono-1.2.1.tar.gz
tar xzf mod_mono-*.tar.gz
cd mod_mono-*/
./configure --prefix=/usr --sysconfdir=/etc
make
sudo checkinstall
6. 配置 Apache2 以便运行 ASP.NET 2.0
cd /etc/apache2/mods-available
sudo ln -s ../mod_mono.conf mod_mono.conf
sudo echo "LoadModule mono_module /usr/lib/apache2/modules/mod_mono.so" > mod_mono.load
sudo a2enmod mod_mono
cd ../sites-available
sudo vim ben.skyiv.com 请参考 default 文件的内容,关键是加入以下语句:
# -------------------------------------------------
Alias /ben /home/ben/www/ben
AddMonoApplications ben "/ben:/home/ben/www/ben"
MonoServerPath ben /usr/bin/mod-mono-server2
<Location /ben>
MonoSetServerAlias ben
SetHandler mono
</Location>
# -------------------------------------------------
sudo a2ensite ben.skyiv.com
sudo /etc/init.d/apache2 restart
7. 完成。运行效果请见: http://ben.skyiv.com/ben/aspx/info.aspx

参考文献:
http://www.ifolder.com/index.php/HowTo:iFolder_Enterprise_Server_on_Ubuntu_6.10
https://help.ubuntu.com/community/ModMono
http://www.mono-project.com/Mod_mono

下面是 /etc/apache2/sites-available/ben.skyiv.com 文件的内容,其实并不一定要增加这个文件,只要改一下/etc/apache2/sites-available里的default文件增加一些目录就可以了,然后就可以省掉这些命令:
cd ../sites-available
sudo vim ben.skyiv.com
sudo a2ensite ben.skyiv.com

下面是 /etc/apache2/sites-available/ben.skyiv.com 文件的内容:
<VirtualHost ben.skyiv.com>
ServerName ben.skyiv.com

DocumentRoot /home/ben/www/default
<Directory /home/ben/www/default>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
Allow from all
DirectoryIndex index.html
</Directory>

Alias /aspx "/home/ben/www/aspx"
AddMonoApplications default "/aspx:/home/ben/www/aspx"
MonoServerPath default /usr/bin/mod-mono-server2
<Location /aspx>
SetHandler mono
</Location>

Alias /ben "/home/ben/www/ben"
AddMonoApplications ben "/ben:/home/ben/www/ben"
MonoServerPath ben /usr/bin/mod-mono-server2
<Location /ben>
MonoSetServerAlias ben
SetHandler mono
</Location>

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>

ErrorLog /var/log/apache2/error.log

# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn

CustomLog /var/log/apache2/access.log combined
ServerSignature On

Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>

</VirtualHost>

转载请注明:成长的对话 » 在 Linux 下运行 ASP.NET 2.0