配置apache以支援cgi程序的執行

2021-06-28 23:26:55 字數 1086 閱讀 6790

配置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...