即使具有适当的权限,Apache 也无法访问已安装的驱动器

即使具有适当的权限,Apache 也无法访问已安装的驱动器

我仍在学习,所以请耐心等待。

我安装了 Apache、php 和 mysql,并运行了一些 vhost,使用 certbot 保护域,一切正常。我可以访问域、运行脚本等。

我还有一个内部 RAID 1 阵列,该阵列格式化为 ext4,并/media/mcp/Vault使用 fstab 中的以下条目进行安装:

/dev/disk/by-uuid/e80c874e-b7cf-4cd0-ab00-1b1a43b88516 /media/mcp/Vault auto nosuid,nodev,nofail,x-gvfs-show 0 0

有问题的脚本存在于/var/www/domain.com/testwrite.php并且仅包含以下代码:

<?php

$dir    = '/media/mcp/Vault';
$files  = scandir($dir);

print_r($files);
  • /media/由 拥有root:root且拥有 的权限0755
  • /media/mcp/拥有root:root并具有以下权限0750
  • /media/mcp/Vault/拥有www-data:www-data并具有以下权限0777

然而,当我运行该脚本时,出现以下错误:

Warning: scandir(/media/mcp/Vault): failed to open dir: Permission denied in /var/www/domain.com/testwrite.php on line 8

Warning: scandir(): (errno 13): Permission denied in /var/www/domain.com/testwrite.php on line 8

$files = scandir($dir);当然是第 8 行。


编辑:

/etc/apache/apache.conf根据链接的问题我添加了以下内容:

<Directory /media/mcp/Vault/>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>

...并重新启动了 apache,但没有任何变化;我仍然收到相同的错误。

然后我改为/mcp/0755,我认为这两个变化的组合解决了我的问题。

答案1

尝试更改目录下的代码,它看起来像

<Directory /media/mcp/Vault/> Options -Indexes AllowOverride All Require all granted </Directory>

希望它有效。

相关内容