Apache は適切な権限があってもマウントされたドライブにアクセスできません

Apache は適切な権限があってもマウントされたドライブにアクセスできません

まだ勉強中ですので、どうかご容赦ください。

Apache、php、mysql をインストールし、いくつかの vhost を実行しています。certbot を使用してドメインを保護しましたが、すべて順調です。ドメインにアクセスしたり、スクリプトを実行したりできます。

/media/mcp/Vaultまた、ext4 にフォーマットされ、 fstab の次のエントリを使用してマウントされている内部 RAID 1 アレイもあります。

/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 を再起動しましたが、変化はなく、同じエラーが引き続き発生します。

その後、0755 に変更しました/mcp/。そして、この 2 つの変更の組み合わせによって、問題が解決したと思います。

答え1

ディレクトリ下のコードを変更してみてください。次のようになります。

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

うまくいくといいですね。

関連情報