本地調試PERL CGI程序

- 中國WEB開發者網絡 (http://www.webasp.net)
-- 技術教程 (http://www.webasp.net/article/)
--- 本地調試PERL CGI程序 (http://www.webasp.net/article/8/7748.htm)
-- 作者:未知
-- 發佈日期: 2003-09-13
要在自己的平台上調試PERL CGI程序,以中文Win98為例,需要做以下幾項工作:


  1. 安裝、設置TCP/IP協議


  2. 安裝、設置Web服務器


  3. 安裝PERL for Win32


  詳細介紹各個步驟:


一、安裝、設置TCP/IP協議


  如果您已經可以通過拔號正確連上Internet,這說明你的TCP/IP已經正確安裝,不過你還得耐心看下去喲!進入「控制面板」,雙擊「網絡」圖標,出現「網絡」的對話框,這裡已經安裝了TCP/IP。假設TCP/IP不存在,要添加它,只需單擊「添加」按鈕,選擇「協議」 後單擊「添加」按鈕,請選擇「Microsoft」-「TCP/IP」,按「確定」,系統提示要Win98的磁盤,然後會重新啟動,照作就是了。別急,這一步還沒結束,還要對TCP/IP進行一些設置。選擇「TCP/IP」,單擊「屬性」。在「DNS配置」中,選擇「禁用DNS」;在「IP地址」選項中選擇「指定IP地址」,在「IP地址」中輸入任意的合法IP地址,如「10.10.10.10」。這樣,在安裝完Web服務後,你就可以在瀏覽器中用「http://10.10.10.10」這個地址進行本地瀏覽了!需要說明的是,如果選擇了「自動獲得IP地址」,那麼,你就只能用「http://你的機器名」了。如何設置機器名呢?單擊「標識」,這裡的「hh」就是機器名了,特別強調一點,機器名勿用中文,否則不能被正確識別和顯示,千萬記住哦!


  也許你會問,剛才選用「禁用DNS」,和「指定IP地址」,那麼在實際拔號上網時不是會出問題嗎?是的,其實要解決這個問題也非常簡單,你只要在「我的電腦」中雙擊「拔號網絡」,選擇你所建立的連接,右鍵打開「屬性」對話框,選擇「服務器類型」,點擊「TCP/IP設置」,在這裡,你可以選擇「已分配IP地址的服務器」,在「指定名稱服務器的地址」中填入你的ISP提供的「主控DNS」和「輔助DNS」的地址即可,這裡我填的是本地163的DNS的地址。


二、安裝、設置Web服務器


  1、中文Win98光盤探寶


  要安裝Web服務器,可是Web服務器程序哪裡來呢?看看Win98光盤裡有些什麼,這兒有個「add-ons」目錄,進去看看,又有個「pws」,其實寶藏已經找到了,就是這個「pws」,它是Personal Web Server的縮寫,就是「個人Web服務器」 我們就用它安裝Web服務器吧(其實Web服務器程序有很多,這裡用它比較方便些。)!


  2、安裝Web服務器


  在安裝這個PWS前,系統必須要有IE4.0以上版本的瀏覽器,中文Win98已經集成了


  IE4.0,這一步可以省略了。進入中文Win98光盤的「\add-ons\pws」目錄,雙擊「setup.exe」,選擇「下一步」,用「典型」安裝PWS至默認目錄,當然你可以用「自定義」安裝選擇你需要的組件,安裝完成後,它會在C盤根目錄下建一個名叫「inetpub」,的目錄,這個文件夾很重要,以後的操作全都在這裡了,系統提示重新啟動,當再次重新啟動後,你會發現狀態欄多了一個小圖標,它就是「個人Web管理器」。咦,我重新啟動時,怎麼會自動彈出拔號對話框呢?


  3、設置Web服務器


  首先,解決上面遇到的問題。當你安裝完PWS後,它的一些設置已被寫入註冊表,在每次啟動Win98時會自動運行PWS,它會自動用瀏覽器檢測網絡服務器,而你IE的連接調用的卻是拔號網絡,所以才會彈出拔號對話框。


  在桌面上右鍵單擊IE,打開「屬性」對話框,選擇「連接」,選擇「通過局域網連接到Internet」,這樣問題就解決了,同時這也是能用瀏覽器瀏覽本地信息的重要一個步驟。


  雙擊「PWS」系統圖標,點擊「啟動」按鈕,Web發佈已經啟動,趕快打開IE,在地址欄輸入「http://hh」,如果你能打開這個地址的話,恭喜,你的Web服務器已經安裝成功了。


  單擊「高級」,打開「高級選項」設置框,選中「允許瀏覽目錄」,雙擊「虛擬目錄」下的「cgi-bin」目錄(如果沒有這個目錄,你可以事先在「c:\inetpub」目錄下建立一個「cgi-bin」子目錄,然後單擊一下「< Home>」,選擇「添加」,在目錄裡輸入「c:\inetpub\cgi-bin」,在別名中輸入「cgi-bin」,這樣就會在「虛擬目錄」 「< Home>」下建立一個「cgi-bin」目錄),彈出「編輯目錄」對話框,你可以看到,它的真實路徑為「C:\Inetpub\cgi-bin」,請把它設為可「執行」。這樣,你把要調試的CGI程式拷貝到「C:\Inetpub\cgi-bin」下,你就可以用「http://hh/cig-bin/程式名.cig」測試你的CGI 程序了。什麼,你的CGI程序現在不能被正確運行?差點忘了一件大事,那就是,你還要安裝一個PERL CGI解釋程序──PERL for Win32 !


三、 安裝PERL for Win32


  1、下載PERL For Win32程序:Pw32i316.exe,1.47M。


它只是PERL For Win32的一個版本,你可以到「http://www.activestate.com」去下載,那兒有很多版本的PERL For Win32,你也可以到我的主頁上去下載,我的主頁地址為:「http://comenet.yeah.net」。


  2、安裝PERL For Win32,這個操作就比較簡單了。


  執行Pw32i316.exe,它是個自解壓的壓縮文件,解壓至「c:\perl\」後自動安裝,系統會分別提問:


  (1).Do you wish to proceed?  輸入「Y 」


  它會在註冊表中加入有關PERL的相關路徑信息。


  (2).Modify search path?  輸入「Y 」


  它會在Autoexec.bat中設定PERL的路徑。重新啟動機器後,根據我的實踐,應該是可以運行CGI程序了。


  3、編一個簡單的PERL CGI程序試一下。


  用記事本新建一個文件,起名為test.cgi(也可命名為test.pl),然後把下面的代碼Copy進去,再將它保存至「c:\inetpub\cgi-bin」目錄中。下面例子中,「#!/usr/bin/perl」對於本例並不必要,因為安裝Perl for Win32時系統已將Perl解釋器加入關聯,但在實際使用中,如果此程序在UNIX主機上運行,這句話指定Perl解釋器位置,是必不可少的。


  #!/usr/bin/perl


  print "Content-type:text/html\n\n";


  #上面這句話是指定服務器與瀏覽器之間的協議,這個例子指定輸出數據類型


  #為text/html,是個HTML文件


  print "< html>";


  print "< head>";


  print "< title>this is a test< /title>";


print "< /head>";


  print "< body>< p>OK,成功了!< /body>";


  print "< /html>";


  exit; #退出程序


  打開瀏覽器,輸入「http://hh/cig-bin/test.cgi」,成功了!。


  不要告訴我你沒成功哦,如果真是這樣,很不幸,你要修改一下Win98的註冊表了,其實這也沒什麼大不了的,就兩句話。


  方法是運行註冊表編輯器「regedit」,依次打開:


  HKEY_LOCAL_MACHINE\System\CurrentContrlSet \Services\W3SVC\Parameters\Script Map\,加入「.cgi『C:\PERL\BIN\perl.exe %s %s』」和「.pl『C:\PERL\BIN\perl.exe %s %s』」。請注意,「C:\PERL\BIN\perl.exe」為安裝Pw32i316.exe後,perl.exe的路徑。退出註冊表編輯,重新啟動計算機,進入「c:\inetpub\cgi-bin」目錄,從中選取剛才建立的「test.cgi」文件,雙擊它,這時系統會出現一個列表窗口,詢問使用什麼程序來打開這種文件,在文件列表中找到「perl(如果找不到可以在「其他」項中按路徑來指定,也就是「c:\perl\bin\perl.exe」),並選定「始終使用該軟件打開這種類型的文件」項,單擊「確定」即可。


  說明一點,在上例瀏覽器中「OK,成功了!」前面會有一行「Content-type:text/html」,不要緊,當這個CGI程序在其它操作系統上執行時,這句話會消失的!另外,Win98/95系統不支持PERL的flock語句,遇到時請你用「#」把它註釋掉,實際使用中再恢復過來。


四、最後補充


  經過上述一番操作,你會發現,要拔號上Internet已經上不去了。不要著急,你只要把IE瀏覽器屬性中的「連接」改為「使用調製解調器連接到Internet」,你又可以上網衝浪了!至此,大功告成!至於中文Win95,操作類似。


  現在,你可以很從容地在本地調試自己編寫的PERL CGI程式,感覺真是棒極了!

 

webasp.net