Apache HTTP Server Version 2.4
지시어를 설명하는데 사용한 용어들
이 문서는 아파치 설정 지시어를 설명하는데 사용한 용어들을 설명한다.
설명 (Description)
지시어의 목적에 대한 간단한 설명.
문법 (Syntax)
설정파일에서 사용할 지시어의 형식을 알려준다. 이 문법은 지시어마다 매우 다르며, 지시어를 정의할 때마다 자세히 설명한다. 일반적으로 지시어 이름 뒤에 공백으로 구분한 아규먼트들이 나온다. 아규먼트가 공백을 포함한다면 아규먼트를 쌍따옴표로 묶어야 한다. 선택적인 아규먼트는 중괄호로 묶는다. 아규먼트가 여러 값중 하나일 경우 값들을 수직막대 "|"로 구분한다. 문자그대로 사용할 부분은 기본 문자체로 쓰고, 대체할 아규먼트는 강조한다. 아규먼트 개수가 정해지지않은 지시어는 마지막 아규먼트가 반복됨을 나타내는 "..."으로 끝난다.
지시어는 매우 다양한 종류의 아규먼트를 받는다. 이중 자주 사용하는 것은 아래와 같다.
- URL
http://www.example.com/path/to/file.html
과 같이 스킴(scheme), 호스트명, 선택적인 경로명을 포함한 완전한 Uniform Resource Locator- URL-path
/path/to/file.html
과 같이 url에서 스킴과 호스트명 뒤에 나오는 부분. url-path는 파일시스템에서 본 시점이 아닌 웹에서 본 시점에서의 자료를 나타낸다.- file-path
/usr/local/apache/htdocs/path/to/file.html
과 같이 root 디렉토리로 시작하는 파일시스템상의 파일 경로. 따로 언급하지않으면, 슬래쉬로 시작하지않은 file-path는 ServerRoot에 상대경로로 취급한다.- directory-path
/usr/local/apache/htdocs/path/to/
와 같이 root 디렉토리로 시작하는 파일시스템상의 디렉토리 경로.- filename
file.html
과 같이 경로 정보가 없는 파일명.- regex
- Perl 형식의 정규표현식(regular expression). 지시어는 regex로 무엇인가를 검색한다.
- extension
- 일반적으로 filename에서 마지막 마침표 뒤에
나오는 부분이다. 그러나 아파치는 여러 확장자를 인식할
수 있기때문에, filename에 마침표가 여러개 포함된
경우 마침표로 구분된 모든 부분을 확장자(extension)로
처리한다. 예를 들어, 파일명
file.html.en
은.html
과.en
이라는 두가지 확장자를 가진다. 아파치 지시어에서 extension에 지정한 값 앞에 마침표가 있어도 되고 없어도 된다. 또, extension은 대소문자를 가리지않는다. - MIME-type
text/html
과 같이 슬래쉬로 major format type과 minor format type를 구분하여 파일의 형식을 설명하는 방식.- env-variable
- 아파치 설정에서 정의한 환경변수 이름. 운영체제의 환경변수와 다름을 주의하라. 자세한 내용은 환경변수 문서를 참고하라.
기본값 (Default)
지시어에 기본값이 있다면 (예를 들어, 설정에서 지시어를 생략한 경우 아파치 웹서버는 이 값을 사용한다.) 이 항목에 나온다. 기본값이 없다면 이 항목은 "None"이어야 한다. 기본값이 서버에 포함된 기본 httpd.conf의 지시어 값과 다를 수 있음을 주의하라.
사용장소 (Context)
서버의 설정파일중 어느곳에서 지시어를 사용할 수 있는지 알려준다. 다음 값들을 쉼표로 구분한 목록이다:
- 주서버설정 (server config)
- 지시어를 서버 설정파일에서 (예를 들어,
httpd.conf
) 사용할 수 있으나,<VirtualHost>
나<Directory>
에서 사용할 수 없음을 뜻한다. 이 지시어는.htaccess
파일에서도 사용할 수 없다. - 가상호스트 (virtual host)
- 지시어를 서버 설정파일의
<VirtualHost>
안에서 사용할 수 있음을 뜻한다. - 디렉토리 (directory)
- 지시어가 섹션 설정에
설명한 제약을 따르며, 서버 설정파일의
<Directory>
,<Location>
,<Files>
,<Proxy>
에서 사용할 수 있음을 뜻한다. - .htaccess
- 지시어를 디렉토리별
.htaccess
파일에서 사용할 수 있음을 뜻한다. 이 지시어는 현재 사용하는 overrides 값에 따라 무시될 수 있다.
지시어는 지정된 장소에서만 사용할 수 있다. 다른 곳에서 사용하면 설정오류가 발생하고 서버는 부분에 대한 요청을 올바로 처리하지 못하거나 작동이, 예를 들어 시작조차도, 안될 수 있다.
지시어를 사용할 수 있는 장소는 열거한 장소를 모두
불린(boolean) OR한 결과이다. 즉,
"server config, .htaccess
"에서 가능하다는
지시어는 httpd.conf
파일과 .htaccess
파일에서는 사용할 수 있지만, <Directory>
나 <VirtualHost>
에서는 사용할 수 없다.
Override 옵션 (Override)
이 지시어를 .htaccess
파일에서 사용하려면
어떤 override 옵션을 사용해야 하는지를 나타낸다. 지시어의
사용장소가 지시어를 .htaccess
파일에서 사용할 수 없다고 한다면 어떤 사용장소도 나오지
않는다.
Overrides는 AllowOverride
지시어로 지시하고,
(디렉토리 등의) 특정 범위와 하위 범위에서 다른 AllowOverride
지시어로 다른 값을
설정하지않았다면 하위 범위에도 그대로 적용된다. 지시어 설명에
사용가능한 override 이름들이 나온다.
상태 (Status)
지시어가 아파치 웹서버에 얼마나 긴밀히 묶여있는지를 나타낸다. 즉, 그 지시어나 기능을 사용하기위해 서버를 모듈과 같이 다시 컴파일할 필요가 있을 수도 있다. 가능한 값은 다음과 같다:
- Core
- 지시어가 "Core" 상태를 가지면, 지시어가 아파치 웹서버 핵심부분에 속하고 항상 사용가능함을 뜻한다.
- MPM
- "MPM" 상태인 지시어는 다중처리 모듈을 제공한다. 이런 지시어는 지시어 설명에서 모듈에 열거된 MPM중 하나를 사용할때만 가능하다.
- Base
- 기본적으로 서버와 같이 컴파일되므로 직접 구성에서 모듈을 제거하지 않았다면 일반적으로 사용가능한 표준 아파치 모듈이 제공하는 지시어는 "Base" 상태이다.
- Extension
- 아파치 서버 배포본에는 포함되있지만 보통 서버와 같이 컴파일되지않는 모듈이 제공하는 지시어는 "Extension" 상태이다. 이런 지시어를 사용하려면 서버 컴파일 구성파일을 수정하고 아파치를 다시 컴파일해야 한다.
- Experimental
- "Experimental"은 지시어가 아파치 배포본에 포함되있지만, 사용은 자신의 책임임을 나타낸다. 지시어는 문서화되있지만, 실제와 다를 수 있다. 지시어를 제공하는 모듈은 기본적으로 아파치와 같이 컴파일될 수도 안될 수도 있다. 지시어와 모듈을 설명하는 문서 앞에서 사용할 수 있는지 살펴봐라.
모듈 (Module)
단순히 지시어를 정의한 소스 모듈명을 열거한다.
지원 (Compatibility)
지시어가 원래 아파치 버전 2 배포본의 일부가 아니였다면, 지시어를 추가하기 시작한 버전이 여기 나온다. 또, 어떤 플래폼에서만 사용가능한 지시어도 여기 나온다.