Apache HTTP Server Version 2.4

Apache > HTTP Server > Documentation > Version 2.4

# 설정파일

이 문서는 최신판 번역이 아닙니다. 최근에 변경된 내용은 영어 문서를 참고하세요.

이 문서는 아파치 웹서버를 설정하는 파일들을 설명한다.

## 주설정파일

관련된 모듈 | 관련된 지시어
--- | ---
`mod_mime` | `<IfDefine>` `Include` `TypesConfig`

일반 문서 파일인 설정파일에 지시어를 사용하여 아파치를 설정한다. 주설정파일을 보통 `httpd.conf`라고 부른다. 이 파일의 위치는 컴파일시 정해지나, `-f` 명령행 옵션으로 지정해줄 수 있다. 또 다른 설정파일을 `Include` 지시어를 사용하여 포함할 수 있고, 와일드카드를 사용하여 많은 설정파일을 포함할 수도 있다. 이 경우 지시어를 어떤 설정파일에나 사용해도 된다. 주설정파일을 수정하면 아파치를 시작하거나 재시작한 이후에 반영된다.

서버는 mime 문서타입을 담은 파일도 읽는다. 파일명은 `TypesConfig` 지시어로 설정하고, 기본값은 `mime.types`이다.

## 설정파일 문법

아파치 설정파일은 한줄에 한 지시어를 사용한다. 줄 마지막 문자가 백슬래쉬 "\"이면 지시어가 다음 줄에서 계속됨을 뜻한다. 이 경우 백슬래쉬 뒤에 어떤 문자나 공백도 나오면 안된다.

설정파일의 지시어는 대소문자를 구별하지 않지만, 지시어의 아규먼트는 대소문자를 구별하는 경우가 있다. 해쉬문자 "#"로 시작하는 줄은 주석으로 무시한다. 주석을 설정 지시어와 같은 줄에 사용할 수 없다. 빈줄과 지시어 앞에 나오는 공백은 무시하므로, 간결하게 보이도록 지시어를 줄들임할(indent) 수 있다.

`apachectl configtest`나 `-t` 명령행 옵션을 사용하여 아파치를 실행하지 않고도 설정파일의 문법 오류를 검사할 수 있다.

## 모듈

관련된 모듈 | 관련된 지시어
--- | ---
`mod_so` | `<IfModule>` `LoadModule`

아파치는 모듈화된 서버다. 이는 매우 기본적인 기능만이 서버 핵심에 포함되있음을 뜻한다. 아파치는 모듈을 읽어들여서 기능을 확장한다. 기본적으로 컴파일하면 서버에 base 모듈들이 포함된다. 서버를 동적으로 읽어들이는 모듈을 사용할 수 있게 컴파일하였다면 모듈을 따로 컴파일하여 아무때나 `LoadModule` 지시어로 추가할 수 있다. 그렇지 않으면 모듈을 추가하거나 빼기위해 아파치를 다시 컴파일해야 한다. 설정 지시어를 `IfModule` 블록으로 감싸서 특정 모듈이 있는 경우에만 선택적으로 처리할 수 있다.

현재 서버에 어떤 모듈이 컴파일되있는지 보려면 `-l` 명령행 옵션을 사용한다.

## 지시어 적용범위

관련된 모듈 | 관련된 지시어
--- | ---
| `<Directory>` `<DirectoryMatch>` `<Files>` `<FilesMatch>` `<Location>` `<LocationMatch>` `<VirtualHost>`

주설정파일에 있는 지시어는 서버 전체에 적용된다. 지시어가 서버의 일부에만 적용되게 하려면 지시어를 `<Directory>`, `<DirectoryMatch>`, `<Files>`, `<FilesMatch>`, `<Location>`, `<LocationMatch>` 섹션 안에 두어야한다. 이 섹션들은 그들이 감싸는 지시어의 적용범위를 파일시스템이나 URL의 특정 위치로 한정한다. 또, 서로 겹쳐서 사용할 수 있기때문에 매우 세밀한 설정이 가능하다.

아파치는 여러 다른 웹사이트를 동시에 서비스하는 능력이 있다. 이를 가상호스트라고 한다. 지시어를 `<VirtualHost>` 섹션 안에 두어 특정 웹사이트에만 지시어를 적용할 수 있다.

지시어는 대부분 어떤 섹션에 나와도 되지만, 어떤 지시어는 특정 장소에서 의미가 없다. 예를 들어 프로세스 생성을 조절하는 지시어는 주서버설정 장소에서만 사용할 수 있다. 지시어가 어떤 섹션에 위치할 수 있는지 알려면 지시어의 사용장소를 확인하라. 더 자세한 정보는 어떻게 Directory, Location, Files 섹션이 동작하나를 참고하라.

## .htaccess 파일

관련된 모듈 | 관련된 지시어
--- | ---
| `AccessFileName` `AllowOverride`

아파치는 특별한 파일을 사용하여 설정을 나눠서(분권적으로) 관리할 수 있다. 이 특별한 파일을 보통 `.htaccess`라고 부르지만, 이름은 `AccessFileName` 지시어로 지정할 수 있다. `.htaccess` 파일에 있는 지시어는 파일이 있는 디렉토리와 모든 하위디렉토리에 적용된다. `.htaccess` 파일은 주설정파일과 같은 문법을 따른다. `.htaccess` 파일은 매 요청때마다 읽기때문에 파일을 수정하면 즉시 효과를 볼 수 있다.

어떤 지시어를 `.htaccess` 파일에 사용할 수 있는지 알려면 지시어의 사용장소를 확인하라. 서버 관리자는 주설정파일의 `AllowOverride` 지시어로 `.htaccess` 파일에 어떤 지시어를 사용할 수 있는지 조절할 수 있다.

`.htaccess` 파일에 대한 더 자세한 정보는 .htaccess 투토리얼을 참고하라.