#

CGI-BIN 目錄使用介紹

很多參加了網頁寄存的用戶, 會發覺寄存戶口內有一個 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, 如下圖:
CHMOD

執行 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 的錯誤路徑.

檔案或目錄的權限設定

如果你正確的設定戶口內的檔案的權限, 你可以將任何檔案變成所有人均'可讀' (read) 或'不可讀'. 你亦可以將任何檔案變成所有人均' 可寫' (write) 或'不可寫'.

很多FTP 軟件都可以改變檔案的權限. 再者, 你必需正確地改變cgi 程式的權限, cgi 程式方可正常執行.

以下是一些chmod 的指引.

CHMOD 權限的形式(mode)

你可以將檔案及目錄設定以下三個權限形式:

可讀(read)
可寫(write)
可執行(execute)
每一個權限形式可以用一個數值代表. 如下表:

權限形式 數值
可讀 4
可寫 2
可執行 1
事實上, 一個檔案可以同時開放三個權限.

所以, 一個同時開放三個權限的檔案的數值是:4+2+1 = 7

使用者權限

使用者分為三層, 分別為:

檔案擁有人(owner)
相同群組人(group)
所有人(other)
所以, 我們需要三個數值來代表檔案的權限(例如: 755)

第一個數值
(eg 7) 第二個數值
(eg 5) 第三個數值
(eg5)
第一個數值(例如: 7) 代表檔案擁有人(即是你) 的權限.
7 即是說: 你可以讀, 寫和執行這個檔案.

第二個數值(例如: 5) 代表在相同"Unix" 群組內的人的權限. 差不多所有MyGreatName 的客戶都是在同一的"Unix" 群組.

5 即是說: 所有MyGreatName 的客戶都可以讀和執行這個檔案.

通常, 你都不會開放可寫的權限給其他人, 因為你都不希望其他人更改你的檔案!

第三個數值代表所有人的權限.

5 即是說: 地球上所有的人都可以讀和執行這個檔案(但不能寫).


權限755 的例子

以下例子清楚的解釋chmod 755 :

Chmod 755
  檔案擁有人 
(第一個數值) 相同群組人 
(第二個數值) 所有人
(第三個數值)
可讀 chmod 755 chmod 755 chmod 755
可寫 chmod 755  
可執行 chmod 755 chmod 755 chmod 755
計算 4+2+1 4+0+1 4+0+1
數值 7 5 5

權限644 的例子

另一個常用的權限是"chmod 644".

Chmod 644
  檔案擁有人 
(第一個數值) 相同群組人 
(第二個數值) 所有人 
(第三個數值)
可讀 chmod 644 chmod 644 chmod 644
可寫 chmod 644  
可執行  
計算 4+2+0 4+0+0 4+0+0
數值 6 4 4
Chmod 644 通常使用在不是程式的檔案,所以檔案是不可執行的.由上表可以理解:

檔案擁有人有讀和寫的權限(4+2).
相同群組的人只有讀的權限(4).
所有人只有讀的權限(4).