CentOS Apache HTTPD 구성 (403 금지)


8

이것이 내 httpd.conf에있는 것입니다.

<VirtualHost *:80>
        ServerAdmin spero78@spero78.com
        ServerName mcmoddr.com
        ServerAlias www.mcmoddr.com
        DocumentRoot /home/mcmoddr/www/
        ErrorLog /mcmoddr/logs/error.log
        CustomLog /mcmoddr/logs/accesslog combined
</VirtualHost>

이 사이트를 방문하면 403 Forbidden 오류가 발생합니다. 파일은 vsftpd로 추가되고 drwxr-xr-x 권한을 갖습니다.

답변:


12

CentOS의 주식 설치를 사용하고 있습니다. 올바른 경우 SELinux가 강제 모드인지 확인하십시오.

getenforce

결과가 "시행"인 경우

일시적으로 허용으로 변경

setenforce 0

다시 시도하면 웹 컨텐츠의 상태를 홈 디렉토리의 파일로 안내 할 수도 있습니다.


이것은 내 경우 트릭을 수행했습니다. 그러나 나중에 setenforce 1으로 다시 강화 하면 구성이 이전과 동일하더라도 표시 할 때 403 오류가 더 이상 표시되지 않습니다.
damix911

이것은 더러운 해킹에 지나지 않습니다. 단순히 보안 기능을 비활성화하는 적절한 방법은 아닙니다. 대신 구성해야합니다.
바보

9

SELinux를 비활성화하거나 ROOT에서 실행

setsebool -P httpd_enable_homedirs on
chcon -R -t httpd_sys_content_t /home/
chcon -R -t httpd_sys_rw_content_t /home/

5

'setenforce 0'에 대한 Freaktor의 답변이 "작동"했습니다 (감사합니다!)

그러나 계속 작동하고 SELinux를 다시 활성화하려면

sudo chcon -Rv --type=httpd_t /path/to/my/files

... 이것은 내 디렉토리와 그 안의 모든 파일과 디렉토리에 "httpd_t"의 보안 컨텍스트를 주었다. 이것은 SELinux가 httpd가 그 파일을 읽게한다고 말하는 이상한 방법이다.

selinux를 다시 활성화하는 것은 다음과 같이 간단했습니다.

setenforce 1

2
이것은 단지 일시적입니다. 새 파일을 만들면 원래 컨텍스트가 유지되고 SELinux는 여전히 새 파일에 대한 액세스를 거부합니다. 영구적 인 해결책은 이 답변을 참조하십시오 .
Michael Hampton 3

3

전역 설정의 어딘가에 거부가있을 수 있습니다. 이것을 vhost 스탠자에 추가하십시오 :

<Directory /home/mcmoddr/www>
  Order allow,deny
  Allow from all
</Directory>

+1, @ Spero78은 .htaccess 파일이 제한적인 지시어를 가진 호스트의 루트에 있지 않도록해야합니다

0

<Directory>위에서 언급 한대로 컨테이너 를 사용해야합니다 .

그런 다음 DocumentRoot경로 에서 확인 해야합니다. 각 디렉토리에는 서비스 사용자 아파치 가 액세스 할 수 있는 읽기 권한이 있어야합니다 .

당신은 사용하여 확인할 수 있습니다 ls -ld


-1

기존 코드에 아래 줄을 추가하십시오.

restorecon -r /home/mcmoddr/www/

문제를 해결해야합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.