2010年8月23日

設定 apache 執行 CGI 程式

編輯 httpd.conf
shell>% vim /etc/httpd/conf/httpd.conf
載入 cgi 模組

LoadModule cgi_module modules/mod_cgi.so

利用 ScriptAlias 指令設定 cgi-bin 這個目錄為 CGI 程式專用,雖然ScriptAlias與 Alias 指令很類似,通常用來連結不在 DocumentRoot 下的目錄,但 ScriptAlias 指令更能表達該目錄內含為 CGI 程式
ScriptAlias /cgi-bin/ /var/www/cgi-bin/

接下來必須明確指定某目錄可以執行 CGI
<Directory /var/www/cgi-bin/>
Options +ExecCGI
</Directory>


告訴 Apache 什麼檔案應視為 CGI 程式,大部分的 CGI 程式的副檔名為 .cgi 或 .pl
AddHandler cgi-script .cgi .pl


完成上述設定後,重新啟動 apache ,將 CGI 程式放到 /var/www/cgi-bin 目錄下,確認apache有執行程式的權限,在網址列上輸入 http://server/cgi-bin/YourProg.cgi 就可以看到結果,若有問題可以參閱 error_log 查看訊息。


使用 UserDir 模組,讓一般使用者能在自己的家目錄下執行 CGI 程式
<IfModule mod_userdir.c>
UserDir public_html
</IfModule>

<Directory /home/*/public_html>
Options +ExecCGI
AddHandler cgi-script .cgi
</Directory>
印出伺服器的環境變數
#!/usr/bin/perl -w
use strict;

print "Content-type: text/html\n\n";
foreach my $key (keys %ENV) {
    print "key --> $ENV{$key}<br>";
}



參考文獻
Apache Tutorial: Dynamic Content with CGI

沒有留言:

張貼留言