top
Loading...
PERLCGI常見問題
一、CGI 簡介
··CGI是 Common Gateway Interface 的簡稱。其主要的功能是在WWW環境下,藉由從客戶端傳遞一些訊息給WWW Server,再由 WWW Server 去啟動所指定的程式碼來完成特定的工作 。
所以更明確的說,CGI僅是在WWW Server上可執行的程式碼,而她的工作就是控制訊息要求而且產生并傳回所需的文件。

二、關于 #!/usr/bin/perl
··在PERL CGI中,第一行必須是服務器上PERL解釋器的位置,一般是#!/usr/bin/perl,注意,前面的#!不能去掉,這個如有不明,要向管理員詢問。
如果是在WIN95/NT的機上裝了PERL解釋器(如ActivePerl、Perl For Win32),在CGI中不用專門定義PERL解釋器位置了,就保留#!/usr/bin/perl就行了,或者如果%path%環境變量中有PERL的路徑的話,就寫#!perl也可以。

三、關于CGI上傳的方式
··上傳CGI文件一定要用ASCII方式,不然執行時會出現500 Internal Server Error的出錯提示,許多FTP軟件的AUTO上傳方式里關于*.CGI、*.PL的上傳方式都定義了BINNARY方式,一定要設為ASCII方式上傳或在ASCII FILES的定義中添加*.CGI、*.PL的定義。特別地,在WIN95/NT中不用改CGI、HTML、目錄的屬性。

四、關于CGI程序的屬性
··在Unix Like的服務器中(95/NT除外),CGI程序的屬性一定要設為可執行(755),才能正常執行,而與CGI有關的HTML文件、數據文件、目錄等,如要被CGI程序寫入的,一定要設為可寫(666)。那么,什么是755屬性,什么是666屬性
呢?

在Bullet Proof FTP軟件中,在遠程文件或目錄上用MOUSE右鍵按一下,在屬性一項,有OWNER、GROUP、 PUBLIC 三項

OWNER GROUP PUBLIC 說明
Read Read Read 此項如選中,值為4

Write Write Write 值為2

Execute Execute Execute 值為1


屬性755
OWNER 下的READ、WRITE、EXECute都要選中,它們的值加起來等于7。
GROUP 下的READ、EXECute選中,值加起來等于5
PUBLIC下的READ、EXECute選中,值加起來等于5
這樣就是755了,明白了嗎?那么666不用我說了。



五、關于絕對路徑和相對路徑
··絕對路徑就是你的主頁上的目錄在硬盤上真正的路徑,相對路徑其實就是URL。

六、關于PERL CGI程序調試的簡單方法
··如果在自已的PWIN95/98/NT系統裝了WEB SERVER(如APACHE)和PERL解釋器(如ActivePerl)后,調試PERL CGI程序就較方便,容易發現錯誤。如果在Web Server 中出現500 Internal Server Error,可進入 MS-DOS窗口,再轉到該CGI的目錄,打 perl 文件名.cgi 就可以根據出錯提示判斷錯誤在哪里。

待續。。。  
北斗有巢氏 有巢氏北斗