用perl写的cgi程序在执行时,原来的httpd会另外调出一个进程,让perl解释程序来运行。而加入了mod_perl做了新的配置之后,这个perl程序的执行速度就会加快,而且不会fork出新的进程。
从(http://perl.apache.org)网站下载最新的软件包。这里我下载的是apache2.0-2.2.xx的包mod_perl-2.0-current.tar.gz并解压
我用的perl 5.12进行安装,5.8.4老是出问题
#cd mod_perl-2.0
#/usr/local/bin/perl Makefile.PL MP_APXS=/usr/local/apache2/bin/apxs
#make
#make test
这时出现 test-run 错误,查了一下网站执行了如下命令
% cd modperl-2.0.xx
% t/TEST -clean
% t/TEST -verbose compat/apache_util.t modperl/pnotes.t
提示成功之后我执行了
#make install
成功安装了,他会提示让你看\mod_perl-2.0.4\docs\user\intro\start_fast.pod 文件
然后 修改/ r/local/apache2/conf/httpd.conf
加入 LoadModule perl_module modules/mod_perl.so
把 Alias /cgi-bin/ /usr/local/apache2/cgi-bin/
修改成
Alias /cgi-bin/ /usr/local/apache2/cgi-bin/
<Location /perl/>
SetHandler perl-script
PerlResponseHandler ModPerl::Registry
PerlOptions +ParseHeaders
Options +ExecCGI
Order allow,deny
Allow from all
</Location>
进行保存
在...../cgi-bin/下编辑a.pl文件
#!/usr/bin/perl
print "Content-type: text/plain\n\n";
print "mod_perl 2.0 rocks!\n";
#chmod +x a.pl
#/usr/local/apache2/bin/apachectl restart
进入http://10.0.1.66:8080/cgi-bin/a.pl 就可以看到mod_perl 2.0 rocks! 了
这样只能在cgi-bin种执行 。pl文件
评论