平台與工具:
windows xp, apache 2.0.59, activeperl-5.6.1.628-mswin32-x86-multi-thread.msi, vc++ 6.0, turboc 2.0
scriptalias /cgi-bin/ "f:/php_code/cgi-bin/"
allowoverride all
options execcgi
order allow,deny
allow from all
addhandler cgi-script .cgi .pl
先停止apache服務,儲存http.conf檔案配置,再啟動服務。
二、perl指令碼cgi:
注意perl指令碼的首句內容要給出perl直譯器的路徑,如果perl和apache不是安裝在同一目錄,要給出絕對路徑。如下示例:
#!f:/perl/bin/perl.exe
#### printenv -- demo cgi program which just prints its environment
##print "content-type: text/html/n/n";
foreach $var (sort(keys(%env))) ;
$val =~ s|/n|//n|g;
$val =~ s|"|//"|g;
print "$=/"$/"
/n";
}拷貝到apache的/cgi-bin/目錄之下。
三、c**寫的,編譯後形成的二進位制**形式的cgi:
示例一:hello.c,編譯後成為 hello.exe,拷貝到apache的/cgi-bin/目錄之下,該字尾為.cgi。
#include
int main()
示例二:mult.c,編譯後成為 mult.exe,拷貝到apache的/cgi-bin/目錄之下,該字尾為.cgi。
int main(void)
請求與上述cgi的頁面:
在此注意的是,用turboc編譯形成的16位dos子程式,apache無法訪問。出現伺服器500錯誤,error.log日誌記錄會顯示:
[thu aug 09 15:34:37 2007] [error] [client 127.0.0.1] (os 5)拒絕訪問。 : couldn't spawn child process: f:/php_code/cgi-bin/hello.cgi
CGI在Apache上的配置
想寫個前台頁面傳送ajax請求到後台用c語言編寫的cgi程式,並成功返回結果。原始碼都很簡單,都有,結果在除錯配置時遇到了乙個又乙個問題。特記錄之。過程參考 1 先貼 ajaxtest1.htm suggest instruction cgi main.c include include inclu...
配置apache執行cgi程式
配置apache執行cgi程式可分為兩種情況,一是scriptalias目錄的cgi,二是scriptalias以外目錄的cgi。scriptalias目錄的cgi scriptalias指令使apache允許執行乙個特定目錄中的cgi程式。當客戶端請求此特定目錄中的資源時,apache假定其中檔案...
配置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 ...