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