Ubuntu10.04为全新安装,并在安装的过程中选择了ssh server, LAMP server, samba三个角色 1. 安装依赖程序
?
1
| apt-get install build-essential bison gettext pkg-config autoconf libtool automake
|
2. 安装Mono2.10
?
1
2
3
4
5
6
7
| wget http://ftp.novell.com/pub/mono/sources/mono/mono-2.10.tar.bz2
tar -xjvf mono-2.10.tar.bz2
cd mono-2.10
./autogen.sh
make
sudo make install
cd ..
|
记得make install需要sudo,否则会提示无权限 参考资料[1]中的./autogen.sh一行有路径参数,但发现实际输入路径参数会提示找不到该参数,故取消,安装后路径在/usr/local/bin下 3. 安装XSP服务器
?
1
2
3
4
5
6
7
| wget http://ftp.novell.com/pub/mono/sources/xsp/xsp-2.10.tar.bz2
tar -xjvf xsp-2.10.tar.bz2
cd xsp-2.10
./configure
make
sudo make install
cd ..
|
同第2步,参考资料[1]中的./configure一行有路径参数,但发现实际输入路径参数会提示找不到该参数 4. 安装apache-dev
?
1
| apt-get install apache2-dev
|
5. 修整相关文件
?
1
2
3
| sudo mv /etc/apache2/mod_mono.conf /etc/apache2/mods-available/
sudo a2enmod mod_mono
sudo service apache2 restart
|
默认mod_mono安装完成后mod_mono.conf会直接出现在/etc/apache2下,ubuntu下的apache2采取分离-包含的配置文件策略,需将mod_mono.conf复制至mods-available并启用mod_mono 6. 修改站点配置文件
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
| <VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName mono.me.com
DocumentRoot /var/www/mono
MonoServerPath mono.me.com "/usr/local/bin/mod-mono-server4"
MonoDebug mono.me.com true
MonoSetEnv mono.me.com MONO_IOMAP=all
MonoApplications mono.me.com "/:/var/www/mono"
<Location "/">
Allow from all
Order allow,deny
MonoSetServerAlias mono.me.com
SetHandler mono
SetOutputFilter DEFLATE
SetEnvIfNoCase Request_URI "\.(?:gif|jpe?g|png)$" no-zip dontvary
</Location>
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/javascript
</IfModule>
ErrorLog /var/log/apache2/error-mono.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel debug
CustomLog /var/log/apache2/access-mono.log combined
</VirtualHost>
|
需要注意"MonoServerPath mono.me.com "/usr/local/bin/mod-mono-server4"一行,mono2.10采取上述默认过程安装完成后并不在很多文章中提到的/usr/bin下,而在/usr/local/bin下 还有DocumentRoot /var/www/mono 此目录需要有执行权限,否则apache会报403错误 7. 部署站点
新建一个Asp.Net Mvc3应用程序,将该Mvc项目生成部署包,通过samba复制至第6步中设置的站点根目录下,并重启apache2服务,在客户机设定好Host并在浏览器中输入设定的域名,如果一切正常,恭喜你可以看到一个经典的Asp.Net错误页,将customerError设为Off,将会看到,是因为缺少一个System.Web.Helpers的dll。此时,回到Mvc项目中,你需要 (1). 添加如下引用 System.Web.Razor.dll
System.Web.WebPages.Razor.dll
System.Web.WebPages.Deployment.dll (2). 将如下引用的dll设定为复制到本地 System.Web.Helpers.dll
System.Web.Mvc.dll
System.Web.WebPages.dll
System.Web.Razor.dll
System.Web.WebPages.Razor.dll
System.Web.WebPages.Deployment.dll (3). 重新生成部署包,覆盖服务器上的bin目录即可。
OK,此时,你已经摆脱了昂贵的Window Server,当然,使用盗版的同学可以偷偷走开,如果你还想摆脱昂贵的Sql Server,那么你可以使用Mysql、PostgreSql、Mongodb,如果你不需要多么强大的性能,那么sqlite也是一个不错的选择。
|