文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>為何我的CGI程式執行時,出現Server Error 500的錯..

為何我的CGI程式執行時,出現Server Error 500的錯..

时间:2005-04-19  来源:一郎

 為何我的 CGI 程式執行時, 出現 Server Error 500 的錯誤訊息?

見到的畫面如下所示:

The server encountered an internal error or misconfiguration and was unable to complete your request. Please contact the server administrator, [email protected] and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.

CGI 程式出現 Server Error 500 的現象很平常, 不管是 CGI 程式的新手或老手, 都經常會碰到這個情況. So, 不要灰心! :-)

以下是我寫作 CGI 程式幾年來的一些偵錯經驗, 提供給各位做參考:

CGI 程式中沒有印出: 欲輸出內容的 MIME 型態.

一般而言, 就是沒傳回 Content-type: text/html 再加上一列空白行分隔.

請檢查您的 CGI 程式是否有 print "Content-type: text/html ";

  1. 您的 CGI 程式呼叫 Perl 的 magic code 路徑不對.

    在程式的第一行要放上 Perl 的呼叫路徑.

    如 #! /usr/bin/perl 或 #! /usr/local/bin/perl

    您可以 telnet 進主機之後, 下 which perl 指令來尋找.

    或者向網管人員洽詢, 務必要查清楚 Perl 的正確路徑.

  2. 欲開啟或寫入的檔案, 其絕對路徑或相對路徑錯誤.

    例如 $guestbook_file="/home/your_dir/www/gbk.txt";

    請查清楚此檔案的路徑是否正確?

  3. 欲開啟或寫入的檔案或目錄, 其權限沒設好.

    通常要寫入的檔案, 權限須設為 666, 僅供讀取的檔案, 權限設為 755.

    或者讓 nobody 身份擁有寫入或讀取權.

  4. 上傳 CGI 程式時, 沒有用 ASCII 模式上傳.

    您是否錯用 Binary 模式上傳呢? 再用 ASCII 模式上傳一次吧?!

  5. CGI 程式的語法有誤, 可能是忘了在某一列 Perl 敘述之後, 加上 ';' 這個結束符號, 或是忘了加上括號() { }. 或者是其它語法錯誤所致.

  6. CGI 程式本身的權限屬性沒設好, 通常 CGI 程式設為 755, 或者讓 nobody 身份擁有讀取及執行權.

  7. 您可能是在印出 html 語法時, 忘了把雙引號中的其它雙引號給 meta 掉(或稱作 escape 掉).

    例如: print "Hello "; 便是錯誤的語法.

    應改成 print "Hello ";

    也就是說在雙引號中, 若要有雙引號, 應寫成 " 來 替代 " .

    比較方便的做法是使用 perl 的 qq, 可將上面改寫成:

    print qq(Hello );

    或者, 使用 Here document 的寫法:

    print <
相关阅读 更多 +
排行榜 更多 +
ooxe官方版下载

ooxe官方版下载

金融理财 下载
ooxe

ooxe

金融理财 下载
OXE交易app安卓版下载

OXE交易app安卓版下载

金融理财 下载