ubuntu+apache2+mono+mvc3

研究了几天,发觉网上的中文教程因为软件版本的原因,大都是“残谱”,没有搞定,最后参考一篇外文才一次性成功,按自己的操作步骤记录一下。

一.安装虚拟机VmWare

二.安装ubuntu-12.04.1-desktop-amd64.iso(或ubuntu-12.04.1-dvd-i386.iso,依据自己的cpu而定)

安装完后进入ubuntu

1.查询ip:ifconfig (用ctrl+alt+t打开终端),本文中获取的地址是192.168.80.129

2.设置root密码:sudo passwd root

三、安装远程控制软件

1.安装ssh: sudo apt-get install openssh-server

2.windows下载PuTTy,和winscp

四、安装apahe2:sudo apt-get install apache2

安装完后进入apache2目录:cd /etc/apache2

ls列出文件,发现有mods-available,打开mod_mono.conf:sudo vim /etc/apache2/mods-available/mod_mono.conf,内容是空白

五.安装mono及其apache组件:

wget http://badgerports.org/directhex.ppa.asc
sudo apt-key add directhex.ppa.asc
sudo apt-get install python-software-properties
sudo add-apt-repository 'deb http://ppa.launchpad.net/directhex/ppa/ubuntu lucid main'
sudo apt-get update
sudo apt-get install mono-complete mono-apache-server4 libapache2-mod-mono

六.配置web在/svr/www/default

1.cd /srv

cd /srv
sudo mkdir www
cd www
sudo mkdir default

sudo chown -R www-data:www-data /srv/www

sudo chmod -R g+rw /srv/www/default/Up
cd /etc/apache2/sites-available
sudo vi mono-default
粘贴:
<VirtualHost *:80>
  ServerName my-mono-server.somewhere.com
  ServerAdmin web-admin@my-mono-server.somewhere.com
  DocumentRoot /srv/www/default
  MonoServerPath my-mono-server.somewhere.com "/usr/bin/mod-mono-server4"
  MonoDebug my-mono-server.somewhere.com true
  MonoSetEnv my-mono-server.somewhere.com MONO_IOMAP=all
  MonoApplications my-mono-server.somewhere.com "/:/srv/www/default"

  <Location "/">
    Allow from all
    Order allow,deny
CheckSpelling on MonoSetServerAlias my-mono-server.somewhere.com SetHandler mono SetOutputFilter DEFLATE SetEnvIfNoCase Request_URI "\.(?:gif|jpe?g|png)$" no-gzip dont-vary </Location> <IfModule mod_deflate.c> AddOutputFilterByType DEFLATE text/html text/plain text/xml text/javascript </IfModule> </VirtualHost>

保存:{按Esc}:ZZ,然后做成symbolic link(同样用vi可编辑)

cd /etc/apache2/sites-enabled
sudo rm 000-default
sudo ln -s /etc/apache2/sites-available/mono-default 000-mono
2.sudo –u www-data mozroots --import sync
sudo mv /var/www/index.html /srv/www/default
sudo vi /srv/www/default/index.html 随意修改后保存(:wq)
sudo /etc/init.d/apache2 restart
现在用http://<ip>/index.html, 访问看看,初步大功告成!
 

 七、现在可以发布一个webform项目上去试试

vs2010新建一个.net基本项目,发布后用winscp拷贝到/svr/www/default,(注意目录,Web.config直接在default下)删除原index.html

sudo /etc/init.d/apache2 restart 后访问,第一个正式项目可以运行了

八、发布MVC3项目

vs2010新建一个mvc3基本项目,发布前设置几个引用dll的属性,设置Copy Local option为True: 

System.Web.Helpers, System.Web.Mvc, System.Web.Routing,System.Web.WebPages

发布后拷贝Program Files\Microsoft ASP.NET\ASP.NET Web Pages\v1.0\Assemblies下的几个动态库到发布bin目录:

System.Web.WebPages.Deployment.dll, System.Web.WebPages.Razor.dll, and System.Web.Razor.dll

 

用winscp拷贝到/svr/www/default(删除原有项目)

sudo /etc/init.d/apache2 restart,大功告成!

补充:

1.大小写问题,可能导致网页或图片无法显示访问

000-mono里的<Location "/">下加:CheckSpelling on

拷贝:sudo cp /etc/apache2/mods-available/speling.load /etc/apache2/mods-enabled/speling.load

2.编辑000-mono

sudo vi /etc/apache2/sites-enabled/000-mono

 

posted @ 2012-12-07 14:32 11ge 阅读(...) 评论(...) 编辑 收藏