Apache가 가상 호스트에서 403을 제공합니다.

Apache가 가상 호스트에서 403을 제공합니다.

저는 CentOS 7에서 Apache를 마스터하려고 노력해 왔습니다.

두 개의 가상 호스트를 설정하고 다음과 같은 기본 index.html 페이지를 만들었습니다.

/var/www/domainA/public_html/index.html

/var/www/domainB/public_html/index.html

두 호스트 모두 다음 권한을 갖습니다.

도메인 A:

public_html -> jonathan:jonathan
index.html -> root:root

도메인 B:

public_html -> jonathan:jonathan
index.html -> root:root

이제 DomainA의 index.html 페이지는 제대로 작동하지만 Domain B의 index.html에서는 403 Forbidden이 표시됩니다.

DomainB의 error.log는 다음을 제공합니다.

AH00132: file permissions deny server access: /var/www/DomainB/public_html/index.html

왜 이런 일이 발생합니까? 이것은 나를 매우 슬프게 만듭니다.

답변1

문제는 파일/폴더 권한 자체가 아니라 작동하지 않는 도메인의 보안 컨텍스트에 있는 것으로 나타났습니다.

내 제한된 이해에 따르면 Apache가 파일을 제공하려면 파일/폴더가 context 에서 실행되도록 구성해야 합니다 httpd_sys_content_d.

내 "오류"는 작동하지 않는 도메인이 내 개발 영역에서 Apache 콘텐츠 폴더로 이동되었고 올바른 보안 컨텍스트가 없어 Apache가 파일을 제공할 수 없다는 것입니다. 이는 폴더 및 하위 폴더에서 실행하여 ls -Z확인되었습니다 .public_html

일단 chcon -R -t httpd_sys_content_t public_html/올바른 보안 컨텍스트를 설정했고 이제 Apache가 모든 것을 제공하고 있습니다.

답변2

chcon -R -t httpd_sys_content_t <Your_Document_Root_Dir>

트릭을 수행해야합니다

관련 정보