1. 程式人生 > >Apache+mono實現ASP.NET網站在ubuntu伺服器上執行

Apache+mono實現ASP.NET網站在ubuntu伺服器上執行

要求:提前安裝好Apache2

安裝mono

mono是一個用來在linux環境下執行.NET的應用

安裝庫到ubuntu 16.04上(其餘版本參考上方官方說明):

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
sudo apt install apt-transport-https
echo "deb https://download.mono-project.com/repo/ubuntu stable-xenial main" | sudo tee /etc/apt/sources.list.d/mono-official-stable.list
sudo apt update

安裝mono元件:

sudo apt install mono-devel mono-complete mono-dbg referenceassemblies-pcl ca-certificates-mono mono-xsp4 

官方提供的一個測試網頁程式碼,我們可以將其複製到hello.apsx中上傳到伺服器上以供測試:

<%@ Page Language="C#" %>
<html>
<head>
   <title>Sample Calendar</title>
</head>
<asp:calendar showtitle="true" runat="server">
</asp:calendar>
這時候我們瀏覽的話,網頁不會顯示出來效果,而是顯示出aspx檔案的原始碼,因為我們尚未配置mod_mono讓Apache支援ASP.NET。

安裝mod_mono

mod_mono是一個Apache元件,為Apache提供ASP.NET支援,官方的說明文件:mod_mono

mod_mono用來切換Apache支援的ASP.NET版本,官方提供了兩種模式,一種為手動模式,一種為自動模式,為了方便我們使用自動模式:

安裝mod_mono軟體包,先停止apache:

sudo service apache2 stop

安裝ASP.NET 1.1的支援:

sudo apt-get install libapache2-mod-mono mono-apache-server

安裝ASP.NET 2.0的支援:

sudo service apache2 restart

sudo apt-get install libapache2-mod-mono mono-apache-server2 mono-devel

mono-apache-server2會提示安裝失敗,應該是官方改變了安裝方式,這一點我還不是很清楚,如果有人明白的話麻煩留言告訴我,如果安裝的是最新版本的mono,支援到了ASP.NET 4.0我們可以先選擇忽略。

啟用Apache2模組:

sudo a2enmod mod_mono_auto

重新啟動Apache:

sudo service apache2 restart
剛才我們上傳的網頁可以正常瀏覽了