
我還在學習中,所以請耐心等待。
我安裝了 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>
希望它有效。