파일을 제공하기 위해 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 구성 파일을 확인하세요.