Apache 웹서버 DocumentRoot 설정을 바꾼 후
/etc/init.d/httpd restart를 했는데 아래처럼 에러가 난다면…

Starting httpd Syntax error on line 282 of /etc/httpd/conf/httpd.conf:
DocumentRoot must be a directory
                                                                              [FAILED]

Redhat의 SELinux 로 인한 문제이며 해결책은 아래처럼 chcon 으로 해결 하거나 SELinux를 내려서 서버 운용


chcon -R -t httpd_user_content_t [디렉토리]


SELinux 내리는 방법
1. 수동으로 끄기 (일시적으로만 먹힘)
system-config-securitylevel
setenforce 0

2. 커널 명령행에 다음 옵션 추가. (grub.conf 등에)
selinux=0

3. /etc/selinux/config 파일 수정 후 리부팅
#SELINUX=enforcing
SELINUX=disable
---> 이 방법으로 할 경우 http 데몬 실행 시 아래와 같은 SELinux 관련 dmesg가 발생
type=1400 audit(1295481504.092:10): avc:  denied  { search } for  pid=3195 comm="httpd" name="/" dev=sda8 ino=2 scontext=root:system_r:httpd_t:s0 tcontext=system_u:object_r:file_t:s0 tclass=dir

4. system-config-securitylevel 을 쉘에서 실행 시킨 후
SELinux 부분을 비활성화로 체크 후 확인 -> 리부팅

SELinux로 인한 DocumentRoot 수정 후 Apache 실행 문제

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다