配置apache執行cgi程式可分為兩種情況,一是scriptalias目錄的cgi,二是scriptalias以外目錄的cgi。
scriptalias指令使apache允許執行乙個特定目錄中的cgi程式。當客戶端請求此特定目錄中的資源時,apache假定其中檔案都是cgi程式並試圖執行。
scriptalias指令形如:
scriptalias /cgi-bin/ /usr/local/apache/cgi-bin/
由於安全原因,cgi程式通常被限制在scriptalias指定的目錄中,如此,管理員就可以嚴格地控制誰可以使用cgi程式。但是,如果採取了恰當的安全方法措施,則沒有理由不允許其他目錄中的cgi程式執行。比如,你可能希望使用者在userdir指定的宿主目錄中存放頁面,而他們有自己的cgi程式,但無權訪問cgi-bin目錄,這樣,就產生了執行其他目錄中cgi程式的需求。
1、用options顯式地允許cgi的執行
可以在主伺服器配置檔案中,使用options指令顯式地允許特定目錄中cgi的執行:
options +execcgi
上述指令使apache允許cgi檔案的執行。另外,還必須告訴伺服器哪些檔案是cgi檔案。下面的addhandler指令告訴伺服器所有帶有cgi或pl字尾的檔案是cgi程式:
addhandler cgi-script cgi pl
2、.htaccess檔案
.htaccess檔案是針對目錄進行配置的一種方法。apache在提供乙個資源時,會在此資源所在目錄中尋找.htaccess檔案,如果有,則使其中的指令生效。allowoverride 指令決定了.htaccess檔案是否有效,它指定了哪些指令可以出現在其中,或者根本不允許使用。為此,需要在主伺服器配置中如此配置:
allowoverride options
在.htaccess檔案中,需要如此配置:
options +execcgi
以使apache允許此目錄中cgi程式的執行。
最後可以編寫乙個cgi程式測試,如:
#!/usr/bin/perl
print "content-type: text/html\n\n";
print "hello, world.";
配置Apache對CGI的支援
在http.conf或 etc apache2 mods enable cgi.load 檔案裡,我的是在目錄 usr local apache2 conf 下面的http.conf 加入cgi支援 loadmodule cgi module usr lib apache2 modules mod ...
配置apache執行cgi程式
配置apache執行cgi程式可分為兩種情況,一是scriptalias目錄的cgi,二是scriptalias以外目錄的cgi。scriptalias目錄的cgi scriptalias指令使apache允許執行乙個特定目錄中的cgi程式。當客戶端請求此特定目錄中的資源時,apache假定其中檔案...
Linux伺服器 apache支援cgi
apache支援cgi 1 開啟apache配置檔案httpd.conf,搜尋 cgi 找到下面的一段,去掉 addhandler 前面的 這樣就開啟了apache的cgi功能 2 cgi的目錄在 var www cgi bin 在這裡建立乙個測試檔案 test.cgi 輸入內容如下 root lo...