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
sudo
–u www-data mozroots --
import
–
sync
sudo
mv
/var/www/index.html /srv/www/default
sudo
vi
/srv/www/default/index.html 随意修改后保存(:wq)
七、现在可以发布一个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