Apache 폴더 권한 오류

Apache 폴더 권한 오류

파일을 제공하기 위해 Apache를 설정한 폴더 이름이 있는데 public어떤 이유로 403 오류 메시지가 표시됩니다.

이 서버에 / 액세스할 수 있는 권한이 없습니다.

test내 해결책은 옆에 다른 폴더( )를 만들고 이를 사용하여 파일을 제공하는 것이었습니다 .

내가 이해할 수 없는 것은 왜 두 폴더 사이의 권한이 동일하지만 첫 번째 폴더를 사용하면 권한 오류가 발생하는지입니다.

이를 어떻게 추가로 진단할 수 있나요?

ls -l다음을 제공합니다:

drwxrwxr-x 2 daniel daniel 4096 Apr 26 19:10 public
drwxrwxr-x 2 daniel daniel 4096 Apr 26 19:10 test

편집하다

콘텐츠/etc/apache2/sites-available/000-default.conf

<VirtualHost *:80>
    DocumentRoot /home/daniel/public/default/public/
    DirectoryIndex index.html index.php
    LogLevel warn
    ErrorLog /home/daniel/public/default/log/error.log
    CustomLog /home/daniel/public/default/log/access.log combined
</VirtualHost>

다음 지시어가 설정되어 있습니다/etc/apache2/apache2.conf

<Directory /home/daniel/public/>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
</Directory>

아래에서 /home/daniel/public/default실행 ls -Zd public test하면

drwxrwxr-x 2 daniel daniel ? 4096 Apr 28 13:44 public
drwxrwxr-x 2 daniel daniel ? 4096 Apr 28 13:44 test

답변1

Apache 오류 로그를 확인하는 것이 좋습니다(/var/log/아파치/데비안/우분투 또는/var/log/httpd/RedHat 및 그 파생물에 대해). 오류 로그는 권한 오류나 기타 문제가 있는 경우 더 자세한 오류 지침을 제공합니다.

시도해 볼 또 다른 방법은 Apache 사용자를 사용하여 sudo를 사용하여 액세스하려는 파일 수를 계산하는 것입니다. 대략 다음과 같습니다.

sudo -u apache2 stat /var/www/public/index.html

웹 루트가 /var/www에 있고 Apache 서버가 apache2 사용자로 실행되고 있다고 가정합니다. 위 명령은 Apache 프로세스가 (충분한 파일 시스템 권한을 사용하여) 문제의 파일을 읽을 수 있는지 확인합니다. 읽을 수 있는 경우(권한 거부 대신 통계 출력이 표시됨) @mdpc가 제안한 것처럼 Apache 서버 구성 자체에 문제가 있을 가능성이 높습니다.

답변2

특정 디렉터리에 허용/거부 지시문이 있는지 확인하려면 Apache 구성 파일을 확인하세요.

관련 정보