Server관련/Sever(OS)

APACHE2 DocumentRoot does not exist for Vhost

saltdoll 2012. 3. 8. 10:01
반응형
현재 리눅스 서버에서 /home 디렉토리를 넣어서, 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]

출처: APACHE2 DocumentRoot does not exist for Vhost  


원인 :
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>



반응형
도움이 되셨다면 하트모양의 "♡ 공감"을 눌러주시면 큰 격려가 됩니다.
(로그인하지 않으셔도 가능)