Mac 10.8.5 上執行cgi

scorpiozj發表於2013-12-05

搭配置搭了好久,花了近半天時間,有必要把過程記錄下。

本文已同步到 icocoa.tk, 歡迎訪問

Mountain Lion上Setting設定裡已經取消了web share,必須要自己啟動apache服務。啟動命令:

//啟動
sudo apachectl start
//重啟
sudo apachectl restart//

然後在使用者主目錄下找到Site目錄,這裡用來放置html。

這裡我輸入後,無論訪問http://localhost/還是http://localhost/~username/index.html都不能訪問。

後來我想起我安裝了xampp,通過xampp的控制檯開啟apache,則可以訪問上述地址。猜測xampp的某些設定影響了系統原有的設定。於是,果斷解除安裝了xampp。這時,重啟下apache,果然可以訪問了。

接下來,要修改apache的一些配置,來開啟cgi。

編輯apache配置檔案:/etc/apache2/httpd.conf,取消註釋:
AddHandler cgi-script .cgi (1)
AddType text/html .shtml (2)
AddOutputFilter INCLUDES .shtml(3)
(1)是描述對什麼樣的檔案視為cgi檔案,使用者可新增,比如新增 perl檔案:
AddHandler cgi-script .cgi .pl
(2)和(3)是表示允許服務端返回的檔案內容格式、和包含的輸出檔案;

檢查cgi_module是否被註釋掉了:
LoadModule cgi_module modules/mod_cgi.so


編輯檔案:/etc/apache2/users/yourusername.conf
<Directory "/Users/yourusername/Sites/">
Options Indexes FollowSymLinks MultiViews ExecCGI
DirectoryIndex index.html index.cgi
AllowOverride None
Order allow,deny
Allow from all
</Directory>
這裡是給Sites目錄設定屬性,ExecCGI就是開啟cgi。接下來就可以把cgi或pl檔案放置在Sites目錄下任何地方了。

最後賦予指令碼檔案可執行許可權。

所有上述的都完成後,需要重啟apache。如果這時,cig還是不能訪問,跳出:

Forbidden

You don't have permission to access /~username/test.cgi on this server.

Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request

那麼,你需要做的就是重啟你的mac!!(我就是在這裡花費太多時間!!)

關於CGI開啟部分 主要參考了:
mac下 apache cgi 配置
CGI Programming With Apache and Perl on Mac OS X

Apache Tutorial: Dynamic Content with CGI

 

相關文章