Apache+mono實現ASP.NET網站在ubuntu伺服器上執行
阿新 • • 發佈:2019-01-24
要求:提前安裝好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中上傳到伺服器上以供測試:
這時候我們瀏覽的話,網頁不會顯示出來效果,而是顯示出aspx檔案的原始碼,因為我們尚未配置mod_mono讓Apache支援ASP.NET。<%@ Page Language="C#" %> <html> <head> <title>Sample Calendar</title> </head> <asp:calendar showtitle="true" runat="server"> </asp:calendar>
安裝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
剛才我們上傳的網頁可以正常瀏覽了