Я все еще учусь, поэтому, пожалуйста, потерпите меня.
Я установил Apache, php и mysql и запустил несколько vhosts, использовал 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 и - я думаю - комбинация этих двух изменений решила мою проблему.
Попытайтесь измениться, код в соответствии с каталогом It будет похож
<Directory /media/mcp/Vault/>
Options -Indexes
AllowOverride All
Require all granted
</Directory>
Hope, он работает.