1. 設定 Apache 開機啟動
sudo launchctl load -w /System/Library/LaunchDaemons/org.apache.httpd.plist
2. 安裝 Mono MDK
http://www.mono-project.com/download/
3. 安裝 Xcode 及 Xcode Command Line Tools
依照 Mac 版本不同,請參閱底下網址
Xcode and the Xcode Command Line Tools
安裝完成後可以直接開啟 Xcode 或利用 Command Line(sudo xcodebuild -license)同意使用 Xcode 的授權
4. 下載及安裝 mod_mono source
http://download.mono-project.com/sources/mod_mono/
sudo port install pkgconfig(需先安裝 MacPorts)
tar xzf mod_mono-X.Y.Z.tar.gz
cd mod_mono-X.Y.Z
./configure
make
sudo make install
5. 完成安裝後的設定
修改 /private/etc/apache2/httpd.conf
新增
Include /private/etc/apache2/mod_mono.conf
6. 重新啟動 Apache
cd /opt/local/bin
sudo ln -s /usr/bin/mod-mono-server2
sudo apachectl restart
這樣就可以在 Apache 上執行 ASP.NET 的程式了,如果要讓 mod_mono 可以執行 MVC4 的網站,
還要底下的設定
在虛擬主機下新增一個 MVC 的應用程式(底下範例是使用 .Net Framework 4,另外我是使用 Apache 2.4 所以設定有所差異請自行調整)
<VirtualHost *:80>
ServerAdmin 管理者信箱
DocumentRoot "虛擬主機主目錄的路徑"
ServerName 主機名稱
Alias /應用程式名稱 "應用程式目錄"
MonoServerPath 應用程式名稱 "/usr/bin/mod-mono-server4"
MonoDebug 應用程式名稱 true
MonoSetEnv 應用程式名稱 MONO_IOMAP=all
MonoApplications 應用程式名稱 "/:應用程式目錄"
<Location "/">
Require all granted
MonoSetServerAlias 應用程式名稱
SetHandler mono SetOutputFilter DEFLATE
SetEnvIfNoCase Request_URI "\.(?:gif|jpe?g|png)$" no-gzip dont-vary
</Location>
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/javascript
</IfModule>
<Location />
Require all granted
</Location>
</VirtualHost>
設定方式可以利用底下工具產生
Apache mod_mono configuration tool
設定也可以參考
http://stackoverflow.com/questions/9391866/mono-vhost-configuration-errors-address-already-in-use
Mono MDK 移除方式,參考來源 http://www.mono-project.com/docs/about-mono/supported-platforms/osx/
Uninstalling Mono on Mac OS X
Run this script in a terminal:
#!/bin/sh -x
#This script removes Mono from an OS X System. It must be run as root
rm -r /Library/Frameworks/Mono.framework
rm -r /Library/Receipts/MonoFramework-*
for dir in /usr/bin /usr/share/man/man1 /usr/share/man/man3 /usr/share/man/man5; do
(cd ${dir};
for i in `ls -al | grep /Library/Frameworks/Mono.framework/ | awk '{print $9}'`; do
rm ${i}
done);
done
留言列表