Apache는 적절한 권한이 있어도 마운트된 드라이브에 액세스할 수 없습니다.

Apache는 적절한 권한이 있어도 마운트된 드라이브에 액세스할 수 없습니다.

아직 배우는 중이니 양해해 주시기 바랍니다.

Apache, php 및 mysql을 설치하고 일부 가상 호스트를 실행하고 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>

... 그리고 아파치를 다시 시작했지만 아무런 변화가 없었습니다. 여전히 같은 오류가 발생합니다.

그런 다음 0755로 변경했는데 /mcp/, 제 생각에는 이 두 가지 변경 사항을 조합하여 문제가 해결된 것 같습니다.

답변1

디렉토리 아래의 코드를 변경해 보십시오. 다음과 같습니다.

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

그것이 효과가 있기를 바랍니다.

관련 정보