본문 바로가기

main/Server

[CentOS 7] Apache httpd.conf 파일 알고 쓰기

Apache 주요 디렉터리

/var/www  웹페이지 콘텐츠 기본 디렉터리
/usr/share/httpd  테스트, 에러페이지 등 기본 콘텐츠
/usr/share/doc/httpd  웹 서버 관련 문서파일
/etc/httpd/conf  주 설정파일
/etc/httpd/conf.d  추가 설정파일
/etc/httpd/conf.modules.d  웹서버와 함께 설치된 모듈 설정 관련 파일

 

ServerRoot

Apache가 설치되어있는 디렉터리, conf 및 logs 디렉터리의 위치를 찾기 위해 사용

ServerRoot "/etc/httpd"

 

DocumentRoot

웹 서버가 웹 서비스를 통해 표시할 디렉터리 지정, 웹 페이지의 루트를 지정하는 지시자

경우에 따라 가상 호스트로 구성된 웹 서버에서는 htdocs 밑에 각 웹 사이트마다 루트폴더를 두고 DocumentRoot가 그곳을 가리킨다.

DocumentRoot "/var/www/html"

 

Include / LoadModule  필요한 설정파일 / 모듈을 로드한다

Include conf.modules.d/*.conf

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule rewrite_module modules/mod_rewrite.so

 

User / Group  웹 서버 프로세스를 구동

`grep apache /etc/passwd /etc/group`  등록된 user, group 확인

`ps -ef | grep httpd`  httpd 실행 중 정보

apache user, group은 root 권한으로 할당 시 시스템 침투 허용관련 root를 제외한 사용자로 할당해야한다.

 

ServerAdmin  500 서버 에러 발생 시 안내문에 출력될 서버 관리자 연락처. 주로 메일 주소 입력

ServerName  서버를 식별하기 위한 호스트 이름 지정. 등록된 도메인 혹은 IP주소를 입력

 

Directory  각 디렉터리에 고유한 설정을 적용하기 위한 블록. 실제 디렉터리의 절대 경로 입력

<Directory />
  Options opt0 opt1 opt2 .. optn
  AllowOverride none
  Require all denied
</Directory>

Options 뒤에는 필요한 옵션을 공백 구분하여 작성해줌

AllowOverride 는 디렉터리의 설정 내용을 외부 파일(.htaccess)에서 재설정 또는 덮어쓸 수 있는지 여부를 결정. 허용되면 httpd.conf 설정이 무시되고 외부 파일의 내용이 적용된다. 보안 및 성능상의 이유로 none으로 설정하고 <Directory>에 직접 작성하는 방법이 권장된다.

 

IfModule / Files  특정 모듈의 포함 여부 / 특정 파일을 대상으로 적용되는 지시어

 

ErrorLog / LogLevel  웹서버 오류로그 저장위치 지정 / 저장할 로그의 레벨을 지정(기본 warn)

`cat /etc/httpd/conf/httpd.conf | grep -i errorlog`

`cat /etc/httpd/conf/httpd.conf | grep -i loglevel`

위 명령어를 입력해보면 파일이 없다고 나옴. VirtualHost 사용 시 해당 태그 내에 지시어 지정해야함.

 

 

 

참고링크

https://doctorlinux.tistory.com/32

https://opentutorials.org/module/3923/23838

http://www.devkuma.com/books/pages/1374