配置apache執行cgi程式

2021-06-09 15:44:43 字數 1138 閱讀 4377

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