1.首先確定mod_perl,已經在apache中且能正常啟動。
相關的設定請去查別的文章..這裡不作說明..
2.在apache 1.3或2.0的httpd.conf中加入
mod_perl 1.X版本上:
PerlModule Apache::PerlRun
Alias /perl-bin/ /usr/local/apache/perl-bin/
<location /perl-bin/>;
SetHandler perl-script
PerlHandler Apache::PerlRun
Options +ExecCGI
PerlSendHeader On
</location>;
這個方法與原本的方法並沒有太大的差異,主要是因為每次access
同一個CGI script時,都需要透過Apache內的perl interpreter
compile再執行,所以速度上並沒有太大的增加。
2.利用Apache::Rigstry
PerlModule Apache::Rigistry
Alias /perl-bin/ /usr/local/apache/perl-bin/
<location /perl-bin/>;
SetHandler perl-script
PerlHandler Apache::Rigistry
Options +ExecCGI
PerlSendHeader On
</location>;
用上述這個方法的好處是,你的CGI script只需要在第一次被呼叫的時候
compile並保存下來,接下來access相同的CGI script時,會直接呼叫已經編譯
好的碼,而不需要再重新compile一次,而PerlRun則是每次access,都用
Apache裡面的perl 編譯器編譯,因此會比較慢。如果程式碼有作修正,則
Apache會馬上重新compile新的可執行碼,可以在error_log中看到這個動作。
但是用Apache::Rigistry的方式,對於語法的檢查相當嚴格,否則程式執行中可
能會造成memory leak的問題。
1.在script開頭一定要用
use strict;
use warnings;
2.open一個 file一定要close 該filehandle。
3.開啟databasehandle一定要close databasehandle。
….
如果不這麼做,則在執行CGI Script時,可能會有很多不可預期的問題產生。
上述方法從mod_perl developer’s cookbook這本書中擷取出來的。若還
有看到什麼有用的東西,再分享給大家。
laoxia 回复于:2003-03-04 12:25:46
啊就好哦,多谢也
apile 回复于:2003-03-04 12:29:05
如果是安裝mod_perl 2.X的版本...
請將Apache::Registry與Apache::PerlRun改成..
ModPerl::Registry與ModPerl::PerlRun...
就可以正確執行了...
|