配置linux(apache) + mono 下運行 asp.net

來源:互聯網
上載者:User

前言: 最近公司在HK接了個單,對方想用自已伺服器,但不想買windows server,想用linux 與 mysql做為平台,因為在HK必需用正版系統,microsoft server產品貴的有些嚇人.但公司php這塊完全不行,但又不想放棄這單生意,所以就想在linux平台上來運行asp.net.於是就有了這篇文章, 我是剛剛才接觸linux server,是一個名副其實的linux菜鳥,如果下面有說錯或者不合理的地方,請大家指出.

這篇文章適合像我這種需求,對linux又不太熟悉的朋友閱讀.

測試環境: VMware +  Ubuntu Server 10.0.4 32bit + MONO 2.4.4 +MySql 5.1

首先安裝Ubuntu,大家可以去Ubuntu官方網站下載,具體安裝過程不多說了,非常簡單.

安裝過程中會提示你選擇需要安裝的服務或軟體,這裡我沒有選,後面在系統中手動安裝.

注意:我們主題是通過mono運行asp.net,測試中我們以root帳戶,所以完全忽略安全問題,關於linux安全配置大家可以去找相關資料.

 

 

安裝完成後,系統會提示登陸,我們以安裝過程中設定的帳戶登陸.

登陸成功後,我們來設定root帳戶密碼,root擁有最高許可權,因為我們測試,所以下面所有操作都以root帳戶

輸入命令:

sudo passwd root

 

修改完成後,我們以root登陸

su root

 


ok,下面我們來安裝一些基本的軟體或服務

配置網路,因為我當前是VM安裝的,VM網路選項設定為NAT,安裝過程中Ubuntu已經分配到ip地址了,並已經可以串連上網.

你可以使用

ifconfig

 

來查看網路設定資訊.如果是你獨立安裝,或者採用其它網路模式,那麼你可能需要手動設定ip,這裡簡單說明一下,具體的大家可以去google. 修改網路設定檔

sudo vi /etc/network/interfaces

增加或修改auto eth0部分內容:

auto eth0

iface eth0 inet static

address 192.168.3.90 #固定ip
gateway 192.168.3.1 #預設閘道
netmask 255.255.255.0 #子網路遮罩

將上面內容替換成你自已的

 

 修改dns

sudo vi /etc/resolv.conf

修改其中 nameserver 的值

網路設定修改完成後,請使用

sudo /etc/init.d/networking restart

來使網路設定立即生效

好了,這些部分我們不多說了,不明白的大家可以去google.

 

下面我們來安裝open ssh,它非常重要,能夠讓我們遠端管理我們伺服器,安裝非常簡單:

sudo apt-get install openssh-server

 

 安裝成功,現在我們可以通過open ssh用戶端來串連了.
我這裡用的是 PuTTy.
串連成功後,可以遠端控制ubuntu server,並執行shell

說到這裡我給大家提供兩個工具,後面有下載,一個就是上面說的到PuTTy,用來管理linux和執行shell一個就是winscp,它可以管理linux上的檔案.

使用winscp可以管理伺服器檔案

 

 

 

我們接著安裝apache

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後會出現很久無法返回狀況,每次都是重啟來解決,重啟後
執行下一個命令時系統會提示
E:dpkg was interrupted ,you must manually run 'sudo dpkg --configure -a' to correct the problem
造成這種提示原因就是剛才的安裝被中斷了,但是執行libapache2-mod-mono等好久都無法返回,所以只有重啟.不過沒關係,按他說的執行

sudo dpkg --configure -a

 

不知道是軟體bug還是操作錯誤,有知道的朋友可以提示一下.

 

Ok,到了這裡,差不多了,於是上傳了一個help.aspx檔案到 /var/www/下面.運行時發現
.net代碼根本沒執行,服務端控制項基本無效,如 

 

 

最後找到原因,mono沒有正確配置.net引擎目錄,當然不會執行.於是找到 /etc/apache2/mods-available/mod_mono.conf 檔案.

使用命令編輯

 

sudo vim /etc/apache2/mods-available/mod_mono.conf

修改為:

 

編輯完成後,重啟apache

sudo /etc/init.d/apache2 restart 

我們再重新整理剛才頁面,正常了,簡單服務端控制項,事件回傳都沒有問題.

 

 

我們可以用下面命令來查看mono版本資訊

mono -V

Ok,現在我們的apache+mono已經可以執行asp.net檔案了.後面我們將進行稍複雜的測試.

下面我們來安裝配置 mysql,這部分簡單說明一下,網上有很多教程

sudo apt-get install mysql-server

安裝過程中會提示你輸入root帳戶密碼.

安裝完成後,登陸mysql,我們以root登陸.

mysql -u root -p 

建立一個測試使用者AAA,密碼123456,該只對資料庫Test有全部許可權

grant all privileges on Test.* to AAA@localhost identified by "123456"

至於mysql的管理命令,大家去網上搜吧,這裡不多說了.

現在我們用用戶端(windows)來串連mysql,我用的是Navicat Lite(免費版),基本操作感覺夠用了.

 

 

如需要允許外部串連,則需要修改mysql下的設定檔/etc/mysql/my.cnf,將bind-networking去掉

如果還是無法串連請採用下面方法:(摘錄)

 1。 改表法。可能是你的帳號不允許從遠程登陸,只能在localhost。這個時候只要在localhost的那台電腦,登入mysql後,更改 "mysql" 資料庫裡的 "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,調用webservice並用vs2008正常編譯,然後上傳到apache目錄下.
經測試完全正常,大家需要注意了,linux下是區分大小寫,所以大家在輸入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 #中文語言套件

好了,希望對需要的朋友有協助.歡迎大家批評指正.  PuTTy+winscp 下載

轉載請注名出處!

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.