2012年8月30日 星期四

打開 apache 的 CGI 設定

環境:OS X 10.8.1

OS X 預設狀態下 apache 的 CGI 是關掉的。
根據一個教你使用 lisp 作為 cgi script 的網頁,只要在 conf 檔中改兩個地方即可。
一是 <Directory> section 中, Option 後面要加上 ExecCGI。
二是加上一行 AddHandler cgi-script .cgi。

這裡除了.cgi,你可以加上自己喜歡的語言副檔名讓 apache 認得,例如.py、.pl。我自己加了.lisp。

除了直接改 /etc/apache2/httpd.conf 外,mac 很貼心的提供了 /etc/apache2/users/user.conf,你可以在不更動全域設定的前提下為自己的使用者提供客製化的伺服器設定。
以下是我的 user.conf。


<Directory "/Users/<user>/Sites/">
Options Indexes MultiViews ExecCGI
AllowOverride All
Order allow,deny
Allow from all
</Directory>
AddHandler cgi-script .cgi .lisp


另外值得一提的是,user.conf 只對 mac 內建的 apache 生效,XAMPP 不吃喔!
如要讓 XAMPP 的 apache 生效,必須改 /Applications/XAMPP/etc/httpd.conf。

一個好的作法是,在 /Applications/XAMPP/etc/httpd.conf 的最後一行加上
Include /etc/apache2/users/user.conf
這樣就能將修改集中於一處了。