即使具有適當的權限,Apache 也無法存取已安裝的磁碟機

即使具有適當的權限,Apache 也無法存取已安裝的磁碟機

我還在學習中,所以請耐心等待。

我安裝了 Apache、php 和 mysql,並運行了一些虛擬主機,使用 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>

希望它有效。

相關內容