Назад | Перейти на главную страницу

apache2, perl и доступ к каталогам

У меня есть сценарий Perl, который хочет получить список файлов в каталоге, используя opendir / readdir ИЛИ glob. Он отлично работает, если этот каталог находится ниже того, в котором скрипт perl находится в OR / tmp. Для любого другого каталога он говорит, что он пуст!

Я что-то упускаю? Я убедился, что мои права доступа точно совпадают с разрешениями / tmp, и я не могу ничего прочитать в этом другом каталоге. Есть ли какие-нибудь фанковые директивы, которые мне нужно изменить? Я даже искал специальные ссылки на 'tmp' во всех файлах conf и ничего.

Кто-нибудь видел такое поведение раньше? Я использую RHEL6.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(), $/;

Этот сценарий работал на <RHEL6.2? Вы используете mod_perl или perl cgi? Если позже, вы используете suExec? Если да, попробуйте добавить это в свой скрипт, на случай, если где-то не работает логирование:

используйте CGI :: Carp qw (fatalsToBrowser);