현재 Fedora 29에서 Apache 웹 서버를 실행하고 있으며 디렉터리 액세스 문제가 있습니다.
에 있는 PHP 및 HTML 파일을 실행할 수 있지만 …/www/html/applications/views
실행하려고 하면 …/www/html/applications/controllers
.
나는 후자의 디렉토리와 그 내용의 권한을 이전 디렉토리와 그 내용의 권한과 일치시키려고 시도했지만 소용이 없었습니다. 소유권을 현재 사용자로 전환하고 권한을 다시 수정해 보았지만 여전히 이 오류가 발생합니다.
또한 아파치 서버 오류 로그를 확인해 보니 이와 관련된 내용은 없는 것 같습니다(마지막 오류 날짜가 5월 22일이었으므로 PHP 스크립트를 마지막으로 재실행한 것은 5월 25일이라고 결론을 내렸습니다. 내가 틀렸다면 정정해주세요). 다음은 최근 3개의 오류 메시지입니다.
[Wed May 22 22:40:07.338339 2019] [lbmethod_heartbeat:notice] [pid 17890:tid 139756349729024] AH02282: No slotmem from mod_heartmonitor
[Wed May 22 22:40:07.350863 2019] [mpm_event:notice] [pid 17890:tid 139756349729024] AH00489: Apache/2.4.39 (Fedora) OpenSSL/1.1.1b mod_perl/2.0.10 Perl/v5.28.2 configured -- resuming normal operations
[Wed May 22 22:40:07.350906 2019] [core:notice] [pid 17890:tid 139756349729024] AH00094: Command line: '/usr/sbin/httpd -D FOREGROUND'
또한 아래에는 파일 내용이 나와 있습니다 .htaccess
.
<IfModule authz_core_module>
Require all denied
</IfModule>
<IfModule !authz_core_module>
Deny from all
</IfModule>
무슨 일이 일어나고 있고 어떻게 해결하는지 아시나요?
답변1
이것은 Deny from all
Apache 2.2 구문이고, 이것은 Require all denied
Apache 2.4 구문입니다.
https://httpd.apache.org/docs/2.4/upgrading.html#access
이 예에서는 인증이 발생하지 않으며 모든 요청이 거부됩니다.
2.2 구성:
주문 거부됨, 허용됨,
모두 거부됨2.4 구성:
모든 요청 거부
https://httpd.apache.org/docs/2.2/mod/mod_authz_host.html#deny
통사론:
Deny from all|host|env=[!]env-variable [host|env=[!]env-variable] ...
이 지시문을 사용하면 호스트 이름, IP 주소 또는 환경 변수를 기반으로 서버에 대한 액세스를 제한할 수 있습니다. 이 명령의 매개변수는
Deny
이 명령의 매개변수와 동일합니다Allow
.
https://httpd.apache.org/docs/2.4/mod/mod_authz_core.html#require
Require all denied
액세스가 무조건 거부됩니다.
그것이 어디에 있는지 말하지 않았기 때문에 그것이 작동하는 이유와 작동하지 않는 .htaccess
이유를 알 수 없습니다 . 하지만 귀하의 콘텐츠에는 다음과 같은 내용이 있습니다.…/www/html/applications/views
…/www/html/applications/controllers
.htaccess
모든 액세스가 거부되었습니다.아파치 2.2/2.4에서 작동합니다.