apache2、perl 和目录访问

apache2、perl 和目录访问

我有一个 perl 脚本,它想要使用 opendir/readdir 或 glob 获取目录中的文件列表。如果该目录位于 perl 脚本所在的目录或 /tmp 下方,则它可以正常工作。对于任何其他目录,它都显示为空!

我是不是漏掉了什么?我确保我的权限与 /tmp 的权限完全匹配,但我无法读取该其他目录上的任何内容。我需要更改一些奇怪的指令吗?我甚至在所有 conf 文件中查找了对“tmp”的特殊引用,但一无所获。

有人见过这种行为吗?我正在运行 RHEL6.2

-标记

答案1

此脚本在 < RHEL6.2 上能用吗?您使用的是 mod_perl 还是 perl cgi?如果是后者,您使用的是 suExec 吗?如果是,请尝试将其添加到您的脚本中,以防日志记录在某处中断:

使用 CGI::Carp qw(fatalsToBrowser);

答案2

确保在脚本中使用绝对路径名。
例如:

  • do "../perlscript.pl";
  • do "/var/www/perl/perlscript.pl";

您的所有陈述都一样open(...);

这是用于查找脚本所在的服务器目录的一个很好的代码片段。

#!/usr/bin/perl
use Cwd;
print "Content-Type: text/plain\n\n"
print getcwd(), $/;

相关内容