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 실행 문제