APACHE2 DocumentRoot does not exist for Vhost
httpd서비스에서 해당 폴더를 httpd서비스에서 존재하지 않는 다는 에러가 발생한다.
[ 해결 방법 - 1 ]
/home이 들어가지 않는 위치로 변경, DocumentRoot 디렉토리를 수정을 해주면 에러가 생기지 않는다.
/var/www/demo.domain.com 으로 수정하니 해당 문제가 해결되었다.
예제- 문제의 메시지)
<VirtualHost 192.168.0.3:80>
ServerName dev.xxxxx.org
DocumentRoot /home/dev/public_html
ErrorLog /home/dev/logs/error_log
CustomLog /home/dev/logs/access_log common
ScriptAlias /cgi-bin/ /home/dev/cgi-bin/
< Directory /home/dev/public_html>
Options Indexes IncludesNOEXEC FollowSymLinks
< /Directory>
SuexecUserGroup dev dev
< /VirtualHost>
When starting apache I get:
[root@wd-linux-1 /]# /etc/rc.d/init.d/httpd start
Starting httpd: Warning: DocumentRoot [/home/dev/public_html] does not exist
[FAILED]
원인 :
SELinux
해결 방법 - 2
# chcon -R -t httpd_user_content_t /home/www
chcon 명령어 /home/www 에 접근 가능하도록 설정한다.
SELinux 참고 자료
슈퍼유저 코리아에서 퍼온 CentOS사이트 자료: SELinux
IBM developerWorks 자료 : 보안강화 리눅스(SELinux)분석
[ 기타, 403 Forbidden 에러 발생시 ]
Virtualhost에 특정 폴더를, 주워질때, Forbidden 권한이 없다고, 메시지가 나타난다.
해당 부분은 Require에 대한 폴더 권한을 확인해야 합니다.
특정 접근 권한에 따른 정보에 따라서 접근이 안될때,
참고로 아래의 방법보다는, 사용할 폴더만 권한을 주길 권해 드립니다.
<Directory />
AllowOverride none
#Require all denied
</Directory>