У меня есть сценарий 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);