리눅스에서 아파치를 설치한 후 직면하게 되는 부분이 바로 403 Forbidden 에러다.
403 Forbidden 에러는 단어 그대로 접근이 금지가 됐다는 말이다.
즉 권한이 없다는 뜻.
몇가지 경우가 있기 때문에 체크를 하다보면 해결할 수 있다.
서버관리를 10년이상해도 403 forbidden 에러는 정말 헷갈린다.
또 헤맸다 ㅡ.ㅡ
1. 웹서버의 디렉토리에 권한이 없는경우다.
웹루트가 /home/hosting/aaa/htdocs 인경우
hosting, aaa, htdocs 모두 실행권한(755 또는 701)이 있어야한다.
chmod 755 /home/hosting
chmod 755 /home/hosting/aaa
chmod 755 /home/hosting/aaa/htdocs
755가 아니라 701 로 해도 무방하겠지요.
2. 웹서버 설정파일 셋팅 문제 (httpd.conf)
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny, allow
Allow from all
</Directory>
위 굵은 글자 부분이 Deny from all 로 되어 있다면 위처럼 변경하고 웹서버를 재시작한다.
구지 접속을 막고 싶다면
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny, allow
Deny from xxx.xxx.xxx.xxx yyy.yyy.yyy zzz.zzz.zzz
Allow from all
</Directory>
3. SELinux 가 동작하는경우
SELinux 는 취약한 보안을 강화시키는 좋은 환경이다.
귀찮다면
$ vi /etc/selinux/config
를 실행하여
SELinux=disabled 로 수정한다. (enforcing, permissive, disabled 가 있다.
적용하기 위해서는
$ setenforce 0 (끄기)
$ setenforce 1 (켜기)
혹은 재부팅
4. SELinux가 동작하는 경우
SELinux 보안환경에서 사용한다면 디렉토리에 보안셋팅을 해줘야한다.
ls -Z 으로 디렉토리 보안상태를 확인할 수 있다.
drwxr-xr-x nlinux nlinux root:object_r:httpd_sys_content_t aaa
drwxr-xr-x nlinux nlinux user_u:object_r:user_home_dir_t bbb
위에서 httpd_sys_content_t 타입을 설정해줘야만 HTTP 웹서버가 접근이 가능하다.
설정하는 방법은 (하위디렉토리까지 모두 변경)
$ chcon -R -h -t httpd_sys_content_t /home/hosting/aaa
이정도만 체크해주면 99% 이상 해결될거라고 믿는다.
이렇게해도 해결되지 않는다면 좀 더 많은 삽질이 요구된다 ㅡ.ㅡ;;;
'Programming & > Server & OS' 카테고리의 다른 글
Windows7 단축키 모음 (0) | 2011.08.19 |
---|---|
아웃룩 익스프레스(Outlook Express) 6.0 에서 0x800C0133 오류 (0) | 2010.05.31 |
tar 로 특정 파일 빼고 압축하기 (0) | 2010.03.30 |
Linux 에서 터미널에 접속한 유저 강제 로그아웃 (0) | 2010.03.17 |
tar 압축 또는 압축풀때 특정 디렉토리 및 파일 지정 (0) | 2010.03.10 |