我仍在学习,所以请耐心等待。
我安装了 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>
希望它有效。