一開始買Pi是打算拿來練練Python+django的,
因緣際會下接到了一個友人委託的案子,
因為當初案子有點趕,所以只好用較能快速完成的ASP.NET進行開發
印象中Linux也有.NET平台解決方案,想說Pi應該也能夠支援才對,
就想說或許可以拿來當平台用,然後真正要用時候才發現........
難怪在找資料DeBug時看到有人回說
"Running ASP or MVC also sucks on Linux Mono" XD
所幸前前後後花了兩天時間,除了一堆Bug後終於可以Run了....
但還是有很多問題就是了,
我想主要應該是Mono支援度問題吧,Maybe,日後再研究。
要讓.Net再Linux/Pi上跑,主要就是安裝Nginx+Mono。
1.安裝Nginx+Mono
sudo apt-get install nginx sudo apt-get install mono-complete sudo apt-get install mono-fastcgi-server42.安裝完Nginx後有兩個檔案需要進行修改,分別是
a./etc/nginx/sites-available/default (注意結尾要分號)
server { listen 80; server_name 192.168.0.2; access_log /var/log/nginx/web.log; location / { root /var/www/[ProjectName]/; index index.html index.htm default.aspx Default.aspx; fastcgi_index Default.aspx; fastcgi_pass 127.0.0.1:9000; include /etc/nginx/fastcgi_params; } }server_name可為domain name或者IP,因為我沒domain所以以IP取代
[ProjectName]為網站的專案名稱,自行替換為自己專案的名稱,
該目錄下即放所有aspx網頁以及相關的CSS、JS等資料。
b./etc/nginx/fastcgi_params在該檔案內新增底下兩行(一樣注意結尾要分號)
fastcgi_param PATH_INFO ""; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;然後重新載入設定
sudo nginx -t && sudo service nginx reload3.安裝MySQL
sudo apt-get install mysql-server4.安裝MySQL-Connector-Net MySQL-Connector-Net要去官方下載最新Mono使用版本,
下載完後解壓縮將其內的mysql.data.dll複製到mono的安裝目錄中
在pi中mono目錄應該在/etc/mono下,
至於connector要幾版的就看個人了,我是使用v4.0版本,
然後這裡有個重點需要將dll安裝到gac中,至於connector要幾版的就看個人了,我是使用v4.0版本,
在安裝前請先將mysql.data.dll改名為MySql.Data.dll
然後在進行註冊安裝,不然會出現底下錯誤:
Failure adding assembly mysql.data.dll to the cache:
the filename "mysql.data.dll" doesn't match the assembly name "MySql.Data"
搞了半天原來是大小寫原因....Orz
整個安裝過程指令如下:
這步驟幾乎在Linux必做的動作,否則中文顯示將會變成亂碼
找到my.cnf檔案,在pi中應該在/etc/mysql/my.cnf
,加入以下設定
7.啟動fastcgi-mono-server4
確實可成功開啟.Net開發的網站,不過發現部分控制項功能有不支援的狀況.....
必須小修改外加除錯....有點累人就是了。
有機會要打掉用Python + django 重練!!
然後在進行註冊安裝,不然會出現底下錯誤:
Failure adding assembly mysql.data.dll to the cache:
the filename "mysql.data.dll" doesn't match the assembly name "MySql.Data"
搞了半天原來是大小寫原因....Orz
整個安裝過程指令如下:
sudo cp [path]/mysql.data.dll /etc/mono sudo mv mysql.data.dll MySql.Data.dll sudo gacutil -i MySql.Data.dll5.修改MySQL語系
這步驟幾乎在Linux必做的動作,否則中文顯示將會變成亂碼
找到my.cnf檔案,在pi中應該在/etc/mysql/my.cnf
,加入以下設定
client] default-character-set=utf8 [mysqld] character-set-server=utf8 collation-server=utf8_general_ci6.把開發的網站丟到/var/www/[ProjectName]/下
7.啟動fastcgi-mono-server4
sudo fastcgi-mono-server4 /applications=/:/var/www/[ProjectName]/ /socket=tcp:127.0.0.1:9000 &8.啟動nginx
sudo /etc/init.d/nginx start上述步驟其實是先Linux Ubuntu試過ㄧ次,在於Pi上又測試一次,
確實可成功開啟.Net開發的網站,不過發現部分控制項功能有不支援的狀況.....
必須小修改外加除錯....有點累人就是了。
有機會要打掉用Python + django 重練!!
沒有留言:
張貼留言