項目實操Mono+Linux配置 實現(xiàn)ASP.NET運行
前言: 最近公司在HK接了個單,對方想用自已服務器,但不想買windows server,想用linux 與 mysql做為平臺,因為在HK必需用正版系統(tǒng),microsoft server產(chǎn)品貴的有些嚇人.但公司php這塊完全不行,但又不想放棄這單生意,所以就想在linux平臺上來運行asp.net.于是就有了這篇文章, 我是剛剛才接觸linux server,是一個名副其實的linux菜鳥,如果下面有說錯或者不合理的地方,請大家指出.
這篇文章適合像我這種需求,對linux又不太熟悉的朋友閱讀.
測試環(huán)境: VMware + Ubuntu Server 10.0.4 32bit + MONO 2.4.4 +MySql 5.1
相關軟件下載:http://down.51cto.com/data/136387
首先安裝Ubuntu,大家可以去Ubuntu官方網(wǎng)站下載,具體安裝過程不多說了,非常簡單.
安裝過程中會提示你選擇需要安裝的服務或軟件,這里我沒有選,后面在系統(tǒng)中手動安裝.
注意:我們主題是通過mono運行asp.net,測試中我們以root帳戶,所以完全忽略安全問題,關于linux安全配置大家可以去找相關資料.
安裝完成后,系統(tǒng)會提示登陸,我們以安裝過程中設定的帳戶登陸.
登陸成功后,我們來設定root帳戶密碼,root擁有***權限,因為我們測試,所以下面所有操作都以root帳戶
輸入命令:
- sudo passwd root
修改完成后,我們以root登陸
- su root
- sudo vi /etc/network/interfaces
配置網(wǎng)絡,因為我當前是VM安裝的,VM網(wǎng)絡選項設置為NAT,安裝過程中Ubuntu已經(jīng)分配到ip地址了,并已經(jīng)可以連接上網(wǎng).
你可以使用
ifconfig
來查看網(wǎng)絡配置信息.
如果是你獨立安裝,或者采用其它網(wǎng)絡模式,那么你可能需要手動設置ip,這里簡單說明一下,具體的大家可以去google.
修改網(wǎng)絡配置文件
增加或修改auto eth0部分內(nèi)容:
ok,下面我們來安裝一些基本的軟件或服務
auto eth0
將上面內(nèi)容替換成你自已的
修改dns
- sudo vi /etc/resolv.conf
修改其中 nameserver 的值
網(wǎng)絡設置修改完成后,請使用
- sudo /etc/init.d/networking restart
來使網(wǎng)絡設置立即生效
好了,這些部分我們不多說了,不明白的大家可以去google.
下面我們來安裝open ssh,它非常重要,能夠讓我們遠程管理我們服務器,安裝非常簡單:
- sudo apt-get install openssh-server
安裝成功,現(xiàn)在我們可以通過open ssh客戶端來連接了.
我這里用的是 PuTTy.
連接成功后,可以遠程控制ubuntu server,并執(zhí)行shell
說到這里我給大家提供兩個工具,后面有下載,一個就是上面說的到PuTTy,用來管理linux和執(zhí)行shell一個就是winscp,它可以管理linux上的文件.
使用winscp可以管理服務器文件
- sudo apt-get install apache2
安裝完成后,我們立即就可以在瀏覽器中測試,輸入服務器ip:
安裝mono
- sudo apt-get install mono-gmcs mono-xsp2 libapache2-mod-mono mono-apache-server2
- sudo a2enmod mod_mono
這里遇到一個問題,在安裝libapache2-mod-mono后會出現(xiàn)很久無法返回狀況,每次都是重啟來解決,重啟后
執(zhí)行下一個命令時系統(tǒng)會提示
E:dpkg was interrupted ,you must manually run 'sudo dpkg --configure -a' to correct the problem
造成這種提示原因就是剛才的安裝被中斷了,但是執(zhí)行l(wèi)ibapache2-mod-mono等好久都無法返回,所以只有重啟.不過沒關系,按他說的執(zhí)行
- sudo dpkg --configure -a
不知道是軟件bug還是操作錯誤,有知道的朋友可以提示一下.
Ok,到了這里,差不多了,于是上傳了一個help.aspx文件到 /var/www/下面.運行時發(fā)現(xiàn)
.net代碼根本沒執(zhí)行,服務端控件基本無效,如下圖
***找到原因,mono沒有正確配置.net引擎目錄,當然不會執(zhí)行.于是找到 /etc/apache2/mods-available/mod_mono.conf 文件.
使用命令編輯
- sudo vim /etc/apache2/mods-available/mod_mono.conf
修改為如圖:
編輯完成后,重啟apache
- sudo /etc/init.d/apache2 restart
我們再刷新剛才頁面,正常了,簡單服務端控件,事件回發(fā)都沒有問題.
我們可以用下面命令來查看mono版本信息
mono -V
Ok,現(xiàn)在我們的apache+mono已經(jīng)可以執(zhí)行asp.net文件了.后面我們將進行稍復雜的測試.
下面我們來安裝配置 mysql,這部分簡單說明一下,網(wǎng)上有很多教程
- sudo apt-get install mysql-server
安裝過程中會提示你輸入root帳戶密碼.
安裝完成后,登陸mysql,我們以root登陸.
mysql -u root -p
創(chuàng)建一個測試用戶AAA,密碼123456,該只對數(shù)據(jù)庫Test有全部權限
- grant all privileges on Test.* to AAA@localhost identified by "123456"
至于mysql的管理命令,大家去網(wǎng)上搜吧,這里不多說了.
現(xiàn)在我們用客戶端(windows)來連接mysql,我用的是Navicat Lite(免費版),基本操作感覺夠用了.
如需要允許外部連接,則需要修改mysql下的配置文件/etc/mysql/my.cnf,將bind-networking去掉
如果還是無法連接請采用下面方法:(摘錄)
1。 改表法??赡苁悄愕膸ぬ柌辉试S從遠程登陸,只能在localhost。這個時候只要在localhost的那臺電腦,登入mysql后,更改 "mysql" 數(shù)據(jù)庫里的 "user" 表里的 "host" 項,從"localhost"改稱"%"
- mysql -u root -p
- mysql>use mysql;
- mysql>update user set host = '%' where user = 'root';
- mysql>select host, user from user;
2. 授權法。例如,你想myuser使用mypassword從任何主機連接到mysql服務器的話。
- GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
如果你想允許用戶myuser從ip為192.168.1.3的主機連接到mysql服務器,并使用mypassword作為密碼
- GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.3' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
- GRANT ALL PRIVILEGES ON *.* TO 'root'@'10.10.40.54' IDENTIFIED BY '123456' WITH GRANT OPTION;
OK,差不多就結束了,
弄了一個簡單web項目,里面包含了普通了c#邏輯代碼,外部dll,httphandler,cookies,session,upload,調(diào)用webservice并用vs2008正常編譯,然后上傳到apache目錄下.
經(jīng)測試完全正常,大家需要注意了,linux下是區(qū)分大小寫的,所以大家在輸入url時,大小寫一定要批配.至于讓apache忽略大小寫,大家自已去搜吧.
ubuntu server 10.0.4 默認是shell界面,沒有圖形界面.
如果需要圖形界面可以另外安裝,重新啟動即可進入圖形界面
- sudo apt-get install xinit
- sudo apt-get install gdm
- sudo apt-get install Ubuntu-desktop
- sudo apt-get install language-support-zh #中文語言包
原文鏈接:http://www.cnblogs.com/hcl0208/archive/2010/10/25/1860173.html
【編輯推薦】
- 詳解ASP.NET MVC 3 beta新特性
- ASP.NET MVC 3讓依賴注入實現(xiàn)得更簡單
- 詳解ASP.NET MVC 3 beta新特性
- ASP.NET MVC 3新特性與NuPack功能詳解
- .NET開發(fā)人員應該關注的七個開源項目
【責任編輯:彭凡 TEL:(010)68476606】