Re: [問題] 呼叫CGI產生HTTP 404錯誤

看板Linux作者 (小風)時間17年前 (2008/07/22 15:34), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
※ 引述《collin2315 (梭哈!)》之銘言: : 最近在學習HTML呼叫Perl程式 從網路上將一HTML網頁建立於/var/www/html/WSRR中 : HTML如下: : <HTML> : <HEAD> : <TITLE>Test</TITLE> : </HEAD> : <BODY> : <form action="../../cgi-bin/test.pl" method='POST'> : <input type=text name=test> : <input type=submit value='Send'> : </form> : </BODY> : </HTML> : 呼叫位於/var/www/cgi-bin的test.pl程式 想請教一下,您的 apache (或 apache2) 的設定如何? 通常沒有特別指定的話, 預設通常不會在 /var/www/cgi-bin 可否檢查一下您的設定檔裡有沒有以下的敍述 ScriptAlias /cgi-bin/ /xxx/xxx/cgi-bin/ 我灌好 apache2 時的預設值是 ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ 有了這一行設定, 一旦網頁導到 /cgi-bin/ 時, 會自動導到 /usr/lib/cgi-bin/ 附帶一提的是, 如果你要設定 /var/www/cgi-bin/ 成為可執行 CGI 的資料夾, 必須要把該資料夾的 CGI 權限打開, 例如, 在您的 apache 設定檔裡, <Directory "/var/www/cgi-bin/"> AllowOverride None Options ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory> ** ExecCGI 必須為 Options 的其中之一 : test.pl如下 : #!perl : print "content-type:text/html","\n\n"; : if ($ENV{'REQUEST_METHOD'} eq 'GET') : { : $querry=$ENV{'QUERY_STRING'}; : } : elsif($ENV{'REQUEST_METHOD'} eq 'POST') : { : read(STDIN, $querry, $ENV{'CONTENT_LENGTH'} ); : } : @querry=split(/&/,$querry); : foreach $pair (@querry) : { : ($name,$value)=split(/=/,$pair); : $value=~s/\+//g; : $value=~s/%0D%0A/<br>/g; : $value=~s/%([0-9a-fA-F][0-9a-fA-F])/pack("C",hex($1))/eg; : $FORM{$name}=$value; : } : $testvalue=$FORM{'test'}; : 開啟網頁並鍵入文字時,卻產生HTTP 404的錯誤 : (一開始為HTTP 500的錯誤,後來修改程式與chmod 755後變成404) 404 表示所指向的內容不存在, 因此我認為 test.pl 沒有被讀取 : 另外,在/var/www/cgi-bin中產生一txt做測試也無法直接從IE開啟 : (ex: http://ip/cgi-bin/test.txt) : 想請問各位前輩我該如何解決? 謝謝回覆 : PS: OS是CentOS release 5 (Final) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 163.139.161.63
文章代碼(AID): #18XOrigK (Linux)
文章代碼(AID): #18XOrigK (Linux)