配置apache執行cgi程式可分為兩種情況,一是scriptalias目錄的cgi,二是scriptalias以外目錄的cgi。
scriptalias目錄的cgi
scriptalias指令使apache允許執行乙個特定目錄中的cgi程式。當客戶端請求此特定目錄中的資源時,apache假定其中檔案都是cgi程式並試圖執行。
scriptalias指令形如:
scriptalias /cgi-bin/ /usr/local/apache/cgi-bin/
scriptalias目錄以外的cgi
由於安全原因,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程式
設定apache執行cgi程式 訪問 時訪問的是 另外目錄下的 cgi 程式。如此設定後,cgi bin 目錄下的任何檔案都以 cgi 程式執行。設定 cgi bin 目錄下的檔案用 cgi 執行。設定 cgi bin 之外目錄下的檔案中可以執行 cgi 程式,在 options 後加上 execc...
配置apache以支援cgi程序的執行
配置apache執行cgi程式可分為兩種情況,一是scriptalias目錄的cgi,二是scriptalias以外目錄的cgi。scriptalias指令使apache允許執行乙個特定目錄中的cgi程式。當客戶端請求此特定目錄中的資源時,apache假定其中檔案都是cgi程式並試圖執行。scrip...
Apache 通過CGI執行指令碼
1.配置伺服器,開啟注釋 告訴伺服器cgi和pl字尾的檔案都是cgi指令碼 編寫python指令碼,並放入 var www cgi bin 目錄下 usr bin python coding utf 8 print content type text plain print hello,world ...