注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

天涯倦客的博客

祝福你朋友永远快乐!

 
 
 

日志

 
 

Ubuntu下搭建Mono+Asp.net MVC+Nginx+MySql环境  

2011-01-27 09:21:59|  分类: asp.net |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

新项目准备建在VPS上,但由于国内的VPS基本是天价, 而国外的VPS由于版权的原因,比起相同配置的Linux要贵上至少15刀/月.
所以这些天一直在研究怎么在Linux下跑asp.net, 因为知道Linux有Mono的支持,确实是支持.NET环境的, 所以先Google了一下, 发现在Linux下安装过Asp.net的人还是有不少的. 但由于我的项目是用的asp.net MVC, 这个在网上很难找到完整的解决方案.
在不断的Google及摸索后,终于让自己的系统在Ubuntu下跑起来了.总结如下:
OS: Ubuntu 9.10
WebServer: Nginx 0.7.62 + mono-fastcgi-server2
environment: movo 2.05 + asp.net 2.05 + asp.net mvc 1.0
DbServer: MySql Server 5.1
以下是步骤:
1.安装Ubuntu 9.10(废话)
2.安装Mono(由于Ubuntu 9.10已经内置了最新版的Mono,所以这一步省了)
3.安装Nginx
sudo apt-get install nginx
4.安装fastcgi-mono-server
sudo apt-get install mono-fastcgi-server2
5.配置Nginx
a.以root进入/etc/nginx
b.用gedit打开nginx.conf
c.在文件中的http节点最后添加:
server {
listen 80;
server_name localhost;
location ~ {
root /ver/www; #网站的根目录
index Default.aspx default.aspx index.aspx Index.aspx index.html index.htm default.htm;
fastcgi_pass 127.0.0.1:9000; #fastcgi要监听的端口号,与后面mono-fastcgi-server2要监听的端口号要一至
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include /etc/nginx/fastcgi_params;
}
}

d.到网站根目录,将/etc/nginx/sites-enabled下的default文件复制过去(其实是链接过去的)
e.打开default文件(以root),在其中的server节点下添加以下内容(就是上面的location节点):
location ~ {
fastcgi_pass 127.0.0.1:9000; #fastcgi要监听的端口号,与后面mono-fastcgi-server2要监听的端口号要一至
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include /etc/nginx/fastcgi_params;
}
location / {
root /ver/www; #网站的根目录
index Default.aspx default.aspx index.aspx Index.aspx index.html index.htm default.htm;
}

f.打开/etc/nginx下的fastcgi_params文件,在最后加入以下内容(这个一定要加,不然mvc的路由功能就不起作用):
fastcgi_param PATH_INFO "";
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

g.至此nginx就算配置完了.
6.启动Server
a.nginx
sudo /etc/init.d/nginx start 或 restart
b.mono-fastcgi-server2(很奇怪,安装的时候和用的时候的名字是相反的), 下面/socket是监听的端口, /address是本机IP, /application是站点相对路径和相对应的程序的
sudo fastcgi-mono-server2 /socket=tcp:9000 /address=127.0.0.1 /applications=/:/var/www
c.浏览器中输入http://localhost这时你程序程应该就能跑起来了.
7.配置web.conf以使用MySql作为数据库
a.打开web.config
b.在前加入以下内容:
<system.data>
<DbProviderFactories>
<clear />
<add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data" />
</DbProviderFactories>
</system.data>

c.这样你就可以在asp.net中使用MySql作为数据库了,MySql.Data.dll可以到MySql网站中下载,这里就不细说了.
8.如果你使用MySql中的MermberShip Provider作为你站点的用户管理, 那你的程序可能还不能正常去行, 因为Mono现在还不提供Hased的密码加密方式,所以你需要用到encrypted.
a.将web.config中的memberShip > providers > add节点中的passwordFormat的值改为encrypted
b.在&ltsystem.web>节点下加入以下内容, 其中的键值你也可以用别的:
<machineKey validationKey="B6AF9388159183B6A8EE690C851398A11997C519F859599459E30121EF4DF8BF2B1666B
C82BB6FEB2FEF279BEB325E897AED6EA5B71C55D213B76510EF96CAA8" decryptionKey="3C5EF273A20ED2473594C9691627700A79376A7C1455320A" validation="SHA1" />

c.这样你的程序就可以使用MySql的MemberShipProvider了.
9.以上是我这几天常试的结果,在我的机器上是可以成功运行的.欢迎交流.

? 2010, leonny.com. 版权所有.
转载请以超链接注明出处, 否则拒绝一切形式的转载!
本文永久链接:http://leonny.com/2010/02/ubuntu-mono-asp-net-mvc-nginx-mysql.html

  评论这张
 
阅读(826)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017