Board logo

標題: [文章] 讓 Windows IIS下也能跑跨平台的 Perl [打印本頁]

作者: adj    時間: 2007-11-2 17:15     標題: 讓 Windows IIS下也能跑跨平台的 Perl

轉載自:
DOB 網站建置百寶箱

如果有了 IIS 下跨平台的 Perl,您又何須費神在 Windows 2000 下安裝 Apache 來執行 perl 呢?那麼在IIS下要如何架構Perl呢?又要如何跨平台使用呢?

【下載及安裝 Active Perl 】

首先請下載新版 ActivePerl-5.8.0.804-MSWin32-x86.msi。
Download:
http://ftp.activestate.com//Acti ... 804-MSWin32-x86.msi

接著請安裝 Active Perl 。要注意的是路徑要設為 c:\usr\ 或是 c:\usr\local\ ( 原因後面會有詳細的說明 )。若是您的電腦有安裝 IIS 的話,那麼在安裝時系統會自動幫您整合。
以下將以 c:\usr\ 作為說明之目錄。

【IIS 之注意事項 】
對 IIS 的老手而言,這一段大概就可以省略了。不過筆者仍在此對 IIS 的初學者稍微的提醒一下下:

在您安裝 IIS 前,請預必確認您的系統中至少有一顆硬碟是 NTFS 的格式。
安裝好 IIS 後,在 Windows 2000 下預設的目錄為 C:\Inetpub\wwwroot\。若是您的 C 槽不是 NTFS 格式,請將它轉換為 NTFS 格式,或是將目指定至其他 NTFS 格式硬碟下的資料夾。有關 IIS 方面的管理及設定,

在此不便贅述;畢竟本篇不是 IIS 教學。
在 web 資料夾的權限方面 ( 滑鼠右鍵 -> 內容 -> 安全 ),一定要有一個Everybody的使用者,其權限至少要有讀取及執行、讀取、寫入。


【整合 Active Perl 及 IIS 】
請依照下步驟作設定:

1.「控制台」->「系統管理工具」->「Internet 服務管理員」->「您的 web 站台」->「內容」->「主目錄」,請將讀取寫入打勾。
2.「控制台」->「系統管理工具」->「Internet 服務管理員」->「您的 web 站台」->「內容」->「主目錄」->「設定」->「應用程式對應」->「.pl 」->「編輯」,請將指令引擎打勾。這個目的是要讓 perl 可以在瀏覽器上執行。
3.「控制台」->「Internet 服務管理員」->「您的 web 站台」->「內容」->「主目錄」->「設定」->「應用程式對應」->「.plx 」->「編輯」,請將指令引擎打勾。
4.「控制台」->「系統管理工具」->「Internet 服務管理員」->「您的 web 站台」->「內容」->「主目錄」->「設定」->「新增」,在「執行檔」欄內鍵入 C:\usr\bin\Perl.exe "%s" %s,並在「副檔名」欄內鍵入 .cgi ,並將 指令引擎打勾。這個目的是為了讓 Perl 可以執行副檔名為「.cgi 」之 perl 執行檔。 接著只要一直按確定就可以了!


【開始執行 Perl 】

請先將下列程式碼複製起來,貼在記事本上,並將檔存在 web 的目錄之 test.pl 或 test.cgi 。
複製內容到剪貼板
代碼:
#!/usr/bin/perl

print "content-type:text/html","\n\n";
print "<html>\n";
print "<head><title>test</title></head>\n";
print "<body><center>\n";
print "這是 CGI 測試。\n";
print "別懷疑...你已經Success啦。\n";
print "</center></body>\n";
print "</html>\n"
打關瀏覽器,並確定網路有連線。在網址欄鍵入 " http://localhost/test.pl " 或是 " http://localhost/test.cgi ",依您儲存的副檔名而定 。如果在螢幕上可以看到「這是 CGI 測試。別懷疑...你已經Success啦。」的字樣,表示您成功架構跨平台的

Perl 。
註:" http://localhost/ "也可以改成 " http://127.0.0.1/ "。


【結論 】

當您依上述步驟安裝好 Perl 後,以後您在 Windows 平台上寫 perl 時,開頭呼叫 perl 的執行路徑,依本篇說明而言就是 #!/usr/bin/perl ;若您安裝的路徑為 c:\usr\ ,那麼除了在【整合 Active Perl 及 IIS】的說明中所需要修改的路徑為 C:\usr\bin\Perl.exe "%s" %s ,開頭呼叫 perl 的執行路徑也就必須改成#!/usr/bin/perl 。而這樣的呼叫路徑和一般 Linux 主機下呼叫路徑是一樣的,這麼一來就達成所謂的跨平台了。
您可以依您的需求改變安裝路徑,以達成跨平台,畢竟每台 Linux 主機所提供 perl 的執行路徑不盡相同。

筆者只是針對一般的 Linux 主機的路徑作說明。
本篇說明只是在 Linux 平台與 Windows 的平台上達成基本的跨平台;所謂基本的跨平台,也只是基本語法可以達到跨平台。要達成完全的跨平台,目前而言是不可能的;畢竟某些 Win32 下的模組,在 Linux上是不支援的,相對的,某些 Linux 平台上的功能 Windows 平台卻是沒有的。
上述而言,就以e-mail的傳送為例:在 Linux 平台上,只需要將寄信程式的路徑設定好就可以傳送信件了 ( 一般而言路徑為 /usr/sbin/sendmail ),而在 Win32 平台上絕對找不到這樣的路徑。那麼在 Win32 平台上要寄信怎麼辦?這時候就必須要用到 Win32 模組下的 Mail::Send 模組或是 Net::Smtp 或 Net:OP3 的模組了。

所以相同的問題就不要再問了。




歡迎光臨 ADJ網路實驗室 (http://dz.adj.idv.tw/) Powered by Discuz! 6.0.0