Я разработал следующий код PHP для чтения определенного каталога с именем /dados/capture
:
tst2.php
<html>
<body>
<?php
echo "whoami: " . shell_exec('whoami')."<br>\n";
exec('ls /dados/capture/',$base);
echo "/dados/capture content ...<br>\n";
foreach ( $base as $dir )
{
print $dir ."<br>\n";
}
?>
Выполнение кода через командную строку Linux «[root $ mysite] # sudo -u apache php tst2.php» возвращает следующее:
<html>
<body>
whoami: apache
<br>
/dados/capture content ...<br>
120130312115149.jpg<br>
120130312115149.swf<br>
120130312115658.jpg<br>
120130312115658.swf<br>
</body>
</html>
Вызов tst2.php
из веб-браузера приводит к:
whoami: apache
/dados/capture content ...
Я попытался изменить разрешение для папки (папок) и создать директиву <directory><directory>
в httpd.conf
без каких-либо изменений в результате.
Я протестировал код с другим каталогом, это было неожиданностью, потому что он также не работает для каталогов /boot
, /mnt
и /opt
.
Использование glob
или readdir
приводит к тому же результату, но потребляет гораздо больше ресурсов процессора.
Я использую CentOs 2.6.32-279.22.1.el6.i686, Apache/2.2.15 и PHP 5.4.12.
У кого-нибудь была похожая проблема?