首页 Soft PlugIn RAN乱 Dev开发 Info资料 English WAP 留言 登陆 注册
-
Posted by Yippee | 评论(0) | 引用(0) | 阅读2574次
perl 5 编程 mod_perl

mod_perl 是个庞大而复杂的工具,它内建了许多模块帮助你方便地构建动态网站。这篇指南的目的是帮助你构建一个良好的 mod_perl 模块,并从中理解 mod_perl 的实现技术。我并不推荐使用这里介绍的技术来建立一个大型站点,尤其对于一个刚刚涉足 mod_perl 的人来说。但我推荐大家可以深入看一下它的一些内建的方案,比如 Mason, AxKit, EmbPerl, Apache::ASP 和 PageKit 等等。

运行PPM www.shengfang.org
运行ppm> install http://theoryx5.uwinnipeg.ca/ppms/mod_perl.ppd

中间提示下载 mod_perl.so,指示路径到
O:\php\Apache Group\Apache2\modules

最后报告: www.shengfang.org
Fetching http://theoryx5.uwinnipeg.ca/ppms/x86/mod_perl.so ...  done!
Where should mod_perl.so be placed? [D:/Apache2/modules] O:/php/Apache Group/Apa
che2/manual
mod_perl.so has been successfully installed to O:/php/APACHE~1/Apache2/manual.
To enable mod_perl, put in the directives
   LoadFile "C:/Path/to/Perl/bin/perl58.dll"
   LoadModule perl_module modules/mod_perl.so
in httpd.conf. For more information, visit
   http://perl.apache.org/
and especially see
   http://perl.apache.org/docs/2.0/rename.html

Successfully installed mod_perl version 2.0.1 in ActivePerl 5.8.7.813.

按照它的说明,以及结合 www.shengfang.org
Win32平台Apache 2.0.52配置mod_perl
http://blog.csdn.net/fzjw/archive/2004/11/03/165856.aspx

修改HTTD.CONF
#
# AddHandler allows you to map certain file extensions to "handlers":
# actions unrelated to filetype. These can be either built into the server
# or added with the Action directive (see below)
#
# To use CGI scripts outside of ScriptAliased directories:
# (You will also need to add "ExecCGI" to the "Options" directive.)
#
#AddHandler cgi-script .cgi www.shengfang.org
AddHandler cgi-script .cgi .pl
AddHandler perl-script .pl .cgi

LoadFile "O:/php/perl/bin/perl58.dll" www.shengfang.org
LoadModule perl_module modules/mod_perl.so

Alias /perl/ "O:/php/Apache Group/Apache2/perl/"
<Location /perl>
     SetHandler perl-script
     PerlResponseHandler ModPerl::Registry
     Options +ExecCGI
     PerlOptions +ParseHeaders
</Location>

重新运行APACHE,在O:\php\Apache Group\Apache2\perl写一个PL文件
print "Content-type: text/plain; charset=iso-8859-1\n\n";
foreach $var (sort(keys(%ENV))) {
    $val = $ENV{ $var };
    $val =~ s&line;\n&line;\\n&line;g;
    $val =~ s&line;"&line;\\"&line;g;
    print "${ var }=\"${ val }\"\n";
} www.shengfang.org

原来的第一行 #!O:/php/perl/bin/Perl.exe 就可以不用了 www.shengfang.org

Mod_perl的简介  Mod_perl是为在Apache上提高perl执行效率而开发的一个模块,有了他就可以直接把  perl程序编译到Apache去,就象把php编译到apache里一样,能大幅度提高执行效率。   Mod_perl的原理  先让我们来看看一个CGI请求请求过程:  web服务器首先启动一个新的进程,并请求perl解析器对脚本进行解析,然后执行,并  返回输出结果。   也就是说,对于每个新的用户对CGI进行请求时服务器都要使用perl解析器对脚本进行重新  的解析,这样很大程度影响了脚本的执行效率。另外由于CGI请求与普通http请求一样都是  进程管理,当脚本执行完成后马上退出内存,但是当服务器响应率很高的时候,同一个时  间有上千个请求的时候,进程队列就会非常拥挤,而且每个单独的进程都会消耗一定的内  存。这就是所谓的‘运行CGI程序的瓶颈’。   而mod_perl正是针对这一点而设计的,当服务器第一次请求mod_perl程序的时候,web服务  器会在内存中编译并加载该程序,当程序完成后并不退出内存,当有新的对该程序的请求  的时候,就无需启动perl进行解析,同时由于线程的响应,因此同一时间内不会耗费更多  的内存,从而达到提高perl-cgi的执行效率,及降低系统资源。  但是盲目的使用mod_perl也有副作用,因为当服务器每次加载一个perl线程时都要占用  内存,而且不象进程那样,执行完成以后退出内存,因此会导致服务器内存耗光。  因此采用Mod_per比较适合下载如下的脚本: 常用的Perl模块DBI GD CGI.pm 等,以及  请求比较繁忙的CGI脚本。


字体:

Permanant URI永久地址 http://www.shengfang.org/blog/p/perl4mod_perl.php
Trackback URI引用地址 http://www.shengfang.org/blog/tb.php?tb_id=1126668428

2005年9月14日11:27星期三  [Dev开发] 追踪此文的RSS
提示:
此文还没有评论。

称呼:    登陆   注册
   不注册,但记住我的信息
邮件:
(非必须)
评论: [UBB代码帮助]
粗体 斜体 下划线 链接 水平线 引用



验证码: 请输入你看见的数字
关闭UBB      提交时自动将内容复制到剪贴板

公告
Fire and Motion!

统计信息
[Yippee]||[统计]||日志:1790
在线: 17||用户: 2562 [列表]
今日:1914||到访:2671413
Rss:838374||评论:1584

最新日志

最新评论

友情链接

日历

最新引用

搜索

归档

杂项
Get RSS Feed (Version 2.0)
Get Atom Feed (Version 0.3)
编码:  UTF-8