Apache не может получить доступ к подключенному диску даже с соответствующими разрешениями - proUbuntu
0 голосов
/

Я все еще учусь, поэтому, пожалуйста, потерпите меня.

Я установил 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 Ответ

0 голосов
/

Попробуйте изменить код в каталоге. Он будет выглядеть так:

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

Надеюсь, это сработает.

...