很多參加了網頁寄存的用戶, 會發覺寄存戶口內有一個 cgi-bin 的目錄, 但不知如何使用。

簡單而言, cgi-bin directory 是用來存放一些可執行的程式 (稱為 cgi scripts)。如你的網站需要加入一些互動功能, cgi 程式是必需的。

而 Perl 卻是開發 cgi 最流行及最佳的程式語言, 最大的優點是易學易懂。

我們的網站為會員設計了一個免費的 “學習 Perl 課程”, 歡迎參閱賜教。

CGI-BIN 目錄使用簡介

以下是使用 cgi-bin 目錄的指引:

  • 我們的伺服器均支援 Perl 程式。
  • 當將 Perl 程式用 FTP 上傳到你戶口的 cgi-bin 目錄時, 必需是 “ASCII” mode, 而不是 “Binary” mode。
  • 當將 Perl 程式用 FTP 上傳到你戶口的 cgi-bin 目錄後, 你必需用 chmod 正確地改變 Perl 程式的權限, Perl程式方可正常執行。一般是 chmod 755, 如下圖:

執行 Perl CGI 程式常見錯誤

當你執行 Perl 程式的時候, 你可能要解決以下是一些常見的錯誤:

伺服器出錯 (Internal Server Error)

這錯誤並不是真的伺服器出錯, 這錯誤來源於伺服器去執行 cgi 程式時產生的, 其實這錯誤一般可能是以下的原因:

  • 程式不能執行
    例如 : 沒有正確改變 cgi 程式的權限 (chmod), 或程式本身的錯誤, 等等…..。
  • 超文件傳輸協定 (HTTP) 表頭的錯誤
    超文件傳輸協定 (HTTP) 表頭和程式本身一般需要印出兩行空白列(\n\n), 例如:
    Print “Content-type:text/html\n\n”;
  • cgi-bin 目錄的權限
    確定你 cgi-bin 目錄的權限 (chmod) 是 755
  • 程式使用的路徑
    確定你 Perl 程式使用的路徑是否正確, 以及確定 HTML 文件內的連結是否正確的指向 cgi 程式.

表頭的錯誤 (Malformed Header)

一般原因是 HTTP 表頭的錯誤, 例如忘記在 HTTP Header 之後加上 \n\n.

另外的可能原因是 Perl 的錯誤路徑。

網頁寄存知識 編寫於 2001年2月