aws centos7 apache 2.4 설치시 403 에러
페이지 정보
본문
기본적으로 설치하고
계정 폴더의 권한을 711 로변경후
selinux 설정을
chcon -R -h -t httpd_sys_content_t /home/hosting/aaa
변경후
httpd.conf 파일에서
DocumentRoot "/home/계정명/public_html"
<Directory "/home/centos/www">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
넣어주면 계정 디렉토리에서 루트폴더로 사용이 가능해진다.
리눅스에서 아파치를 설치한 후 직면하게 되는 부분이 바로 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
출처: http://blog.nlinux.com/55 [마법눈의 웹세상]
계정 폴더의 권한을 711 로변경후
selinux 설정을
chcon -R -h -t httpd_sys_content_t /home/hosting/aaa
변경후
httpd.conf 파일에서
DocumentRoot "/home/계정명/public_html"
<Directory "/home/centos/www">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
넣어주면 계정 디렉토리에서 루트폴더로 사용이 가능해진다.
리눅스에서 아파치를 설치한 후 직면하게 되는 부분이 바로 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
출처: http://blog.nlinux.com/55 [마법눈의 웹세상]
관련링크
-
https://blog.nlinux.com/55
5911회 연결
- 이전글영문 윈도우 서버에서 iis 한글 깨짐 처리 20.02.21
- 다음글CentOS 7 | firewall-cmd로 방화벽 관리하기 20.02.21
댓글목록
등록된 댓글이 없습니다.