Linux防健忘日誌No.58-Ubuntu 11.10 讓Apache支援ASP .NET 4.0網頁 & MySQL
今天中午設定了30分鐘Windows Server 2008 R2 SP1(以下簡稱S2K8)
雖然成功解決掉MySQL的問題
(結果是自己Refer到舊版6.3.7.0的dll組件…而S2K8上的IIS7內當初裝是裝6.4.4.0,超白癡)
但想到這台Server要放在學校,而學校的網路的環境太錯綜複雜,不好解決
又懶的研究S2K8如何用VPN…
說來諷刺,當初是因為覺得讓Linux支援ASP SV麻煩
現在變成換S2K8要搞VPN麻煩…
索性還是回頭設法讓家中的Ubuntu Server支援ASP .NET
讓Ubuntu支援ASP .NET不外乎有兩個大方法
1.Apache2+Mono 模組
2.Jexus
我選了Mono模組搭配的方法
網路google了很久,這種Apache+MySql+ASP的簡稱LAMA
不過大家的文章的蠻散的
而且有點年紀,這裡再重新重整今天一下午建立的筆記
前置條件:
i.Apache服務要裝好設定好
ii.MySQL也已經設定好並且可供外連(除非你做單機)
1.要先更新apt source(因為mono最近才把新版的deb加入apt)
sudo apt-get upgrade
2.安裝mono插件
sudo apt-get install libapache2-mod-mono
這個過程可能會發現終端機卡住(我在實體Server作是沒卡住,但VM就有卡…)
如果等了10幾分鐘還沒過,請重新開機
再重新下一次這條指令確認一下
3.確認啟用mono模組
sudo a2enmod mod_mono
4.接著要改個mono組態檔,否則asp語法的網頁不會自己編譯執行
sudo vi /etc/apache2/mods-available/mod_mono.conf
內容如下:
AddType application/x-asp-net .aspx .ashx .asmx .ascx .asax .config .ascx
DirectoryIndex index.aspx
MonoAutoApplication enabled//加入這行
MonoServerPath “/usr/bin/mod-momo-server4″//這行可有可無,如果你只想支援.net 2,就改為mod-momo-server2
# Include the web application definitions generated by mono-server{2,4}-update.
#
# If you want to use ASP.NET 2.0 (via mono-apache-server2), use:
# Include /etc/mono-server2/mono-server2-hosts.conf
#
# If you want to use ASP.NET 4.0 (via mono-apache-server4), use:
# Include /etc/mono-server4/mono-server4-hosts.conf
Include /etc/mono-server4/mono-server4-hosts.conf
5.修改完組態檔要重新啟動apache
sudo service apache2 restart
6.接著你可以把一個aspx專案丟上去跑看看,基本上應該會過
基本aps .net 4.0 on linux伺服器就架設完成
但我的asp網站有用到GridView連接MySQL資料庫
所以出現Failed to find or load the registered .Net Framework Data Provider ‘MySql.Data.MySqlClient
這個錯誤訊息
如果要看到錯誤訊息
你要在web.config中的system.web區塊加入
@@@
~~~~~~~~~other code~~~~~~~~~~
~~~~~~~~~other code~~~~~~~~~~
@@@
唉,架個站一波三折
接下來來解決這個問題
1.去MySQL官網抓Not Install 版本的Connector(打這篇文章的時候版號是6.4.4.0)
http://dev.mysql.com/downloads/mirror.php?id=403989
2.解壓縮之後把底下的mysql.data.dll複製到SV上..(我這裡是v4資料夾底下的3個dll都複製到linux底下的’/home/thkaw/ec/MySql.Data.dll’ )
注意,如果你當初在Visual Studio 下Refer的dll是有大小寫之分(例如MySql.Data.dll)
到了Linux底下,必須要把名稱更正為當初編譯Refer的名稱
3.接著要匯入剛剛複製的dll
sudo gacutil -i ‘/home/thkaw/ec/MySql.Data.dll’
4.重啟apache
sudo service apache2 restart
之後試看看吧~
如果很不幸的還是出問題…
請到web.config找個地方貼上以下內容:
description=”.Net Framework Data Provider for MySQL”
type=”MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data,
Version=6.1.2.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d”/>
其中的Version請自行更改到合適的值
結束~~
thx for:
http://www.ylmf.net/ubuntu/tips/201010287914_4.html
http://docs.dynamichoice.com/?p=23
http://www.mono-project.com/Assemblies_and_the_GAC
http://mono.1490590.n4.nabble.com/I-cannot-get-working-Mono-with-MySql-connector-and-the-System-Data-Common-namespace-td1837252.html
Leave a comment
很抱歉,必須登入網站才能發佈留言。