免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4133 | 回复: 2

cgi script如何昇級至mod_perl... [复制链接]

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
发表于 2003-03-04 12:11 |显示全部楼层
1.首先確定mod_perl,已經在apache中且能正常啟動。
  相關的設定請去查別的文章..這裡不作說明..
2.在apache 1.3或2.0的httpd.conf中加入
mod_perl 1.X版本上:

PerlModule Apache:erlRun

Alias /perl-bin/ /usr/local/apache/perl-bin/
<location /perl-bin/>;
SetHandler perl-script
PerlHandler Apache:erlRun
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這本書中擷取出來的。若還
有看到什麼有用的東西,再分享給大家。

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
发表于 2003-03-04 12:25 |显示全部楼层

cgi script如何昇級至mod_perl...

啊就好哦,多谢也

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
发表于 2003-03-04 12:29 |显示全部楼层

cgi script如何昇級至mod_perl...

如果是安裝mod_perl 2.X的版本...
請將Apache::Registry與Apache:erlRun改成..
ModPerl::Registry與ModPerl:erlRun...
就可以正確執行了...
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP