我还在学习中,请多多包涵。
我安装了 Apache、php 和 mysql,并运行了一些虚拟主机,使用 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
8号线$files = scandir($dir);
当然是。
编辑:
我/etc/apache/apache.conf
根据链接的问题添加了以下内容:
<Directory /media/mcp/Vault/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
...并重新启动apache,但没有任何变化;我仍然得到同样的错误。
然后我改为/mcp/
0755 并且 - 我认为 - 这两个更改的组合解决了我的问题。
尝试更改目录下的代码它看起来像
<Directory /media/mcp/Vault/> Options -Indexes AllowOverride All Require all granted </Directory>
希望它有效。