即使 apache 有目录权限,PHP scandir() 也会给出“权限被拒绝”

问题描述 投票:0回答:1

当我使用PHP的

scandir()
时如下:

$basedir = "/var/www/html/mike/DroughtAgg";
$available_runs = scandir($basedir);

我明白了

警告:scandir(/var/www/html/mike/DroughtAgg):无法打开目录:/var/www/html/mike/ddashboard.php 第 15 行的权限被拒绝”错误。

但是,当我导航到这个目录时,

ls -ltr

它回来了

drwxrwsrwx. 7 apache          domain users    65  June 27 22:44 DroughtAgg

这向我表明 PHP 实际上应该有权访问该目录。 我还在 DroughtAgg 和父文件夹上运行了

getfacl
scandir()
可以成功访问,并且没有发现任何值得注意的差异。

php permissions scandir
1个回答
0
投票
有几件事需要检查,即

    您的 PHP 脚本应在有权访问该目录的用户下运行。为此尝试以下脚本:
<?php echo 'Current PHP user: ' . get_current_user(); ?>

  1. 其次,检查上述脚本返回的用户是否对该目录“/var/www/html/mike/DroughtAgg”具有必要的权限

  2. 另请检查 Apache 错误日志。

  3. 检查 PHP 是否有读取目录的权限。您需要检查您的 php.ini 来了解这一点。

© www.soinside.com 2019 - 2024. All rights reserved.