close

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

 

arrow
arrow

    James Wu 發表在 痞客邦 留言(0) 人氣()