请教perl和apache的问题

请教perl和apache的问题

各位达人,在下,在apache上部署了简单的perl程序,就利用perl链接ldap,

但是,每每运行就报错,错误如下:

IO::Socket::INET: Permission denied at /var/www/cgi-bin/t4_ldap.pl line 6, <DATA> line 225.

不知道何解?

另外,写了perl程序连接mysql,又出错(crying),报错如下:

DBI connect('database=domino;host=10.10.10.10','root',...) failed: Can't create TCP/IP socket (13) at /var/www/cgi-bin/transferData.pl line 15

我都晕菜了,才接触apache,请大人们指点……
看起来是你运行的cgi程序权限不够。
/var/www/cgi-bin/t4_ldap.pl line 6


很明显这一行出错了。。。权限不够。。要么你贴出来看看。。
你说是啥意识,是程序的执行权限么?我的是775了,
可能是apache哪里做了设置,但是在那里就不知道了,唉
我也知道是权限不足,但是就是不知道在哪里开放这个权限?

use Net::LDAP;
use Net::LDAP::LDIF;

my $ldap = Net::LDAP->new('10.10.10.10') or die "$@";
my $mesg = $ldap->bind( "system", password => "1rkjcah");
                        base   => "o=d-org",
                        filter => "uid=*",
                      );
$mesg->code && die $mesg->error;
printf("%d\n",$mesg->count);






foreach $entry ($mesg->entries) {
   $mailhost=$entry->get_value('mailhost');
   $uid = $entry->get_value('uid');
   printf("mailhost:%s;\nuid:%s\n",$mailhost,$uid);
}

$mesg = $ldap->unbind;
应该是运行apache用户的权限不对吧,你的apache由什么用户运行?
在httpd.conf文件中,我写的user和group都是apache,是这个的设置么,apache启动时用root的哦;
问题解决了,目录有一定的问题,在rhv5上有个专门的目录来存放perl程序,这个是在httpd.conf文件中指定了的哦,

是一个perl.conf的文件,在/etc/httpd/conf.d/下面,vi之,然后去掉一下行的注释,然后创建/var/www/perl,将程序放在下面就好了哦,
看来的确是权限的问题,

Alias /perl /var/www/perl
<Directory /var/www/perl>
    SetHandler perl-script
    PerlResponseHandler ModPerl::Registry
    PerlOptions +ParseHeaders
    Options +ExecCGI
</Directory>
Options +ExecCGI

主要是这个