让你的apache支持Perl

来源:互联网 发布:js中数组元素个数 编辑:程序博客网 时间:2024/06/03 20:47

默认情况下,apache狠吝啬的,不支持perl的web输出;
我的系统是大无畏的centos ,因为有绝妙的yum,所以爱上了它;

[root@weblily cgi-bin]# cat  /etc/httpd/conf/httpd.conf|grep -i mod_perl
[root@weblily cgi-bin]#

为什么要进行下一步呢,似乎从2.0以后,apache习惯把这些php perl的支持都以include 形式支持进来的。所以上一步grep  不到,可能在include里出现。
[root@weblily cgi-bin]# ls /etc/httpd/modules/mod_perl.so
ls: /etc/httpd/modules/mod_perl.so: 没有那个文件或目录

yum install mod_perl
经过复杂的生产过程,mod_perl被安装成功~
[root@weblily cgi-bin]# ls /etc/httpd/modules/mod_perl.so
/etc/httpd/modules/mod_perl.so

由于,我这个是vhost形式安装,所以还要在虚拟机上进行设置安装。
1. 加入cgi directory,让vhost虚拟域支持perl. 
   ScriptAlias /cgi-bin/ "/opt/cgi-bin/"
   <Directory "/opt/cgi-bin">
    AllowOverride None
    Options None
    Order allow,deny
    Allow from all
   </Directory>
2. vi httpd.conf
 修改为: AddHandler cgi-script .pl .cgi
3. chmod 0777 -R /opt/cgi-bin/

经过以上几步折腾,差不多了。写一个测试一下吧。

[root@weblily cgi-bin]# ls
test.pl
[root@weblily cgi-bin]# vi test.pl

#!/usr/bin/perl -w
use CGI;
{
my $q = new CGI;
print $q->header(),
$q->start_html("hello perl world!"),
$q->h1('hello perl world'),
$q->end_html();
}
当然还要安装CGI模块,测试有没有安装cgi模块,可以这样。
perl -e 'use cgi' && echo $?
测试地址:
http://www.weblily.cn/cgi-bin/test.pl