Apache HTTP Server Version 2.4
configure
스크립트는 특정 플래폼에서 아파치
웹서버를 컴파일하고 설치하기위해 소스 트리를 구성한다. 여러
옵션을 사용하여 원하는 요구조건에 맞게 서버를 컴파일할 수
있다.
소스 배포본의 최상위 디렉토리에 있는 이 스크립트는 유닉스와 유닉스류 시스템에서만 사용한다. 다른 플래폼을 사용한다면 플래폼 문서를 참고하라.
configure
스크립트는 배포본의 최상위
디렉토리에서 실행해야 한다.
./configure [OPTION]...
[VAR=VALUE]...
환경변수를 (예를 들어, CC
, CFLAGS
,
...) 지정하려면, VAR=VALUE
와
같이 지시한다. 아래에서 유용한 환경변수들을
설명한다.
이 옵션들은 configure
자체 행동에 영향을
준다.
-C
--config-cache
--cache-file=config.cache
와 같다.--cache-file=FILE
-h
--help [short|recursive]
short
아규먼트는
이 패키지 특유의 옵션만을 출력한다. recursive
아규먼트는 포함된 모든 패키지에 대한 짧은 도움말을
보여준다.-n
--no-create
configure
스크립트를 정상적으로 실행하지만,
출력파일을 만들지 않는다. 이 옵션은 컴파일을 위한 makefile을
만들기 이전에 검사 결과를 확인해볼때 유용하다.-q
--quiet
checking ...
문구를 출력하지
않는다.--srcdir=DIR
..
이다.--silent
--quiet
와 같다.이 옵션들은 설치 디렉토리를 지정한다. 설치 위치는 선택한 구조(layout)에 따라 다르다.
--prefix=PREFIX
/usr/local/apache2
이다.--exec-prefix=EPREFIX
기본적으로 make install
은
/usr/local/apache2/bin
,
/usr/local/apache2/lib
와 같은 위치에 모든
파일을 설치한다. --prefix=$HOME
과 같이
--prefix
옵션을 사용하여
/usr/local/apache2
이외의 설치 상위디렉토리를
지정할 수 있다.
--enable-layout=LAYOUT
config.layout
파일에 여러 설정 예가 있고,
이를 참고하여 직접 설정을 만들 수도 있다. 파일에서
각 구조는 <Layout
FOO>...</Layout>
로 구분되며, 이
부분은 FOO
라는 이름의 구조를 나타낸다.
구조의 기본값은 Apache
이다.설치 디렉토리를 더 수정한다면 아래 옵션을 사용한다.
각 디렉토리의 기본값은 autoconf
가 지정하며,
선택한 구조에 따라 다름을 주의하라.
--bindir=DIR
htpasswd
와 dbmmanage
같은
지원 프로그램도 포함된다. DIR의 기본값은
EPREFIX/bin
이다.--datadir=DIR
datadir
의 기본값은
PREFIX/share
이다.
autoconf
에 이 옵션이 있지만 현재 사용하지
않는다.--includedir=DIR
includedir
의 기본값은
EPREFIX/include
이다.--infodir=DIR
infodir
의 기본값은
PREFIX/info
이다. 현재 이 옵션은
사용하지 않는다.--libdir=DIR
libdir
의 기본값은
EPREFIX/lib
이다.--libexecdir=DIR
libexecdir
의 기본값은
EPREFIX/libexec
이다.--localstatedir=DIR
localstatedir
의 기본값은
PREFIX/var
이다.
autoconf
에 이 옵션이 있지만 현재 사용하지
않는다.--mandir=DIR
mandir
의 기본값은
EPREFIX/man
이다.--oldincludedir=DIR
oldincludedir
의 기본값은
/usr/include
이다. autoconf
에
이 옵션이 있지만 현재 사용하지 않는다.--sbindir=DIR
httpd
, apache2ctl
,
suexec
등 서버 프로그램을 말한다.
sbindir
의 기본값은
EPREFIX/sbin
이다.--sharedstatedir=DIR
sharedstatedir
의 기본값은
PREFIX/com
이다.
autoconf
에 이 옵션이 있지만 현재 사용하지
않는다.--sysconfdir=DIR
apache2.conf
,
mime.types
와 같은 읽기전용 머쉰별 자료를
DIR에 설치한다. sysconfdir
의
기본값은 PREFIX/etc
이다.다른 시스템에서 실행할 아파치 웹서버를 교차컴파일하기(cross-compile)하기 위한 옵션들이다. 서버를 컴파일한 시스템에서 서버를 실행하는 일반적인 경우, 이 옵션을 사용하지 않는다.
--build=BUILD
config.guess
스크립트의 결과이다.--host=HOST
--target=TARGET
autoconf
에 이 옵션이 있지만 아파치 웹서버와는
관련이 없다.이 옵션은 웹서버의 세부 기능을 조절한다.
일반적으로 다음 문법을 사용하여 기능을 포함하고 뺀다:
--disable-FEATURE
--enable-FEATURE=no
와 같다.--enable-FEATURE[=ARG]
yes
이다.--enable-MODULE=shared
--enable-MODULE=static
configure
는 foo가 없는 경우
--enable-foo
를 사용해도 이 사실을
알려주지 않으므로 주의해서 입력해야 한다.
어떤 모듈은 기본적으로 컴파일되기때문에 사용하지 않는다면 명시적으로 빼줘야 한다. 다음 옵션은 특정 모듈을 컴파일 과정에서 제외한다.
--disable-actions
mod_actions
가 제공하는 요청에 대한
행동 기능을 사용하지 않는다.--disable-alias
mod_alias
가 제공하는 요청을
파일시스템의 다른 부분으로 대응하는 기능을 사용하지
않는다.--disable-asis
mod_asis
가 제공하는 as-is 파일형을
지원하지 않는다.--disable-auth
mod_auth
가 제공하는 사용자별 접근제어
기능을 사용하지 않는다. 이 모듈은 사용자명과 암호를
일반 문자파일에 저장하는 HTTP Basic Authentication에서
사용한다.--disable-autoindex
mod_autoindex
가 제공하는 디렉토리
목록 기능을 사용하지 않는다.--disable-access
mod_access
가 제공하는 호스트별
접근제어 기능을 사용하지 않는다.--disable-cgi
mod_cgi
를 기본적으로 포함한다. 이
옵션을 사용하면 CGI를 지원하지 않는다.--disable-cgid
worker
나
perchild
를 사용하는 경우 기본적으로
mod_cgid
가 CGI 스크립트를 지원한다.
이 옵션을 사용하면 CGI를 지원하지 않는다.--disable-charset-lite
mod_charset_lite
가 제공하는 문자집합
변환 기능을 사용하지 않는다. 이 모듈은 EBCDIC 시스템에서만
기본적으로 포함한다.--disable-dir
mod_dir
이 제공하는 디렉토리 요청
처리 기능을 사용하지 않는다.--disable-env
mod_env
가 제공하는 환경변수 설정/해제
기능을 사용하지 않는다.--disable-http
http
모듈은 서버가 웹서버로 동작하는데 기본적인 모듈이다.
대신 다른 프로토콜 모듈을 사용할 경우에만 이 모듈이
유용하다. 자신이 무엇을 하는지 확실히 알지
못한다면 이 옵션을 빼지 마라
--disable-imagemap
mod_imagemap
이 제공하는 서버기반 imagemap
기능을 사용하지 않는다.--disable-include
mod_include
가 제공하는 Server Side
Includes 기능을 사용하지 않는다.--disable-log-config
mod_log_config
가 제공하는 로그
설정을 사용하지 않는다. 이 모듈이 없으면 서버의 요청을
로그에 기록할 수 없다.--disable-mime
mod_mime
은 요청한 파일명의 확장자에
따라 파일의 행동과 내용(mime-type, 언어, 문자집합,
인코딩)을 결정한다. (이 모듈을 제거하여) 파일 확장자를
MIME과 연관하지 않는 것을 일반적으로 추천하지 않는다.--disable-negotiation
mod_negotiation
이 제공하는 내용협상
기능을 사용하지 않는다.--disable-setenvif
mod_setenvif
가 제공하는 헤더에
따라 환경변수를 설정하는 기능을 사용하지 않는다.--disable-status
mod_status
가 제공하는 프로세스/쓰레드
감시 기능을 사용하지 않는다.--disable-userdir
mod_userdir
이 제공하는 요청을 사용자별
디렉토리에 대응하는 기능을 사용하지 않는다.기본적으로 컴파일되는 모듈도 있지만, 모듈을 사용하려면
직접 혹은 most
나 all
키워드를
사용하여 명시적으로 포함해야 하는 모듈이 있다. 그래서
아래 옵션들을 사용한다.
--enable-auth-anon
mod_auth_anon
이 제공하는 익명사용자
접근 기능을 사용한다.--enable-auth-dbm
mod_auth_dbm
은 사용자명과 암호를
DBM형식의 데이터베이스 파일에 저장하는 HTTP Basic
Authentication에서 사용한다. 모듈을 사용하려면 이
옵션을 사용한다.--enable-auth-digest
mod_auth_digest
가 제공하는 RFC2617
Digest authentication을 사용한다. 이 모듈은 정보를
일반 문자파일에 저장한다.--enable-authnz-ldap
mod_authnz_ldap
이 제공하는 LDAP기반
인증 기능을 사용한다.--enable-cache
mod_cache
가 제공하는 동적으로 생성하는
파일의 캐싱 기능을 사용한다. 매우 부하가 많거나 프록시
서버를 캐싱하는 서버에게 이 실험적인 모듈이 유용할
수 있다. 최소한 한가지 저장관리모듈(storage management
module)을 (예를 들어, mod_cache_disk
나
mod_mem_cache
) 같이 사용해야 한다.--enable-cern-meta
mod_cern_meta
가 제공하는 CERN 메타파일
지원 기능을 사용한다.--enable-charset-lite
mod_charset_lite
가 제공하는 문자집합
변환 기능을 사용한다. 이 모듈은 EBCDIC 시스템에서만
기본적으로 포함된다. 다른 시스템에서는 직접 포함시켜줘야
한다.--enable-dav
mod_dav
가 제공하는 WebDAV 프로토콜
처리 기능을 사용한다. 독립된 mod_dav_fs
모듈이 파일시스템 자원을 지원한다. 이 모듈은
--enable-dav
를 사용하면 자동으로 포함한다.mod_dav
는 http
프로토콜 모듈과 같이 사용해야 한다.--enable-dav-fs
mod_dav_fs
가 제공하는 DAV의 파일시스템
자원 지원 기능을 사용한다. 이 모듈은
mod_dav
모듈을 위한 제공자이기 때문에
--enable-dav
도 사용해야 한다.--enable-deflate
mod_deflate
가 제공하는 압축전송
인코딩 기능을 사용한다.--enable-disk-cache
mod_cache_disk
가 제공하는 디스크
캐싱 기능을 사용한다.--enable-expires
mod_expires
가 제공하는 Expires
헤더 조절 기능을 사용한다.--enable-ext-filter
mod_ext_filter
가 제공하는 외부
필터 지원 기능을 사용한다.--enable-file-cache
mod_file_cache
가 제공하는 파일
캐싱 기능을 사용한다.--enable-headers
mod_headers
가 제공하는 HTTP 헤더
조절 기능을 사용한다.--enable-info
mod_info
가 제공하는 서버정보 기능을
사용한다.--enable-ldap
mod_ldap
이 제공하는 LDAP 캐싱과
연결풀 기능을 사용한다.--enable-logio
mod_logio
가 제공하는 로그에 헤더와
입출력 바이트수를 기록하는 기능을 사용한다.--enable-mem-cache
mod_mem_cache
가 제공하는 메모리
캐싱 기능을 사용한다.--enable-mime-magic
mod_mime_magic
이 제공하는 MIME
type 자동 인식 기능을 사용한다.--enable-isapi
mod_isapi
가 제공하는 isapi 확장을
지원한다.--enable-proxy
mod_proxy
가 제공하는 프록시/게이트웨이
기능을 사용한다. CONNECT
, FTP
,
HTTP
에 대한 프록시 기능을 각각
mod_proxy_connect
,
mod_proxy_ftp
,
mod_proxy_http
모듈이 제공한다. --enable-proxy
를 사용하면
이 세 모듈을 자동으로 포함한다.--enable-proxy-connect
mod_proxy_connect
가 제공하는
CONNECT
요청에 대한 프록시 지원 기능을
사용한다. 이 모듈은 mod_proxy
모듈의
확장이므로, --enable-proxy
도 같이 사용해야
한다.--enable-proxy-ftp
mod_proxy_ftp
가 제공하는
FTP
요청에 대한 프록시 지원 기능을 사용한다.
이 모듈은 mod_proxy
모듈의 확장이므로,
--enable-proxy
도 같이 사용해야 한다.--enable-proxy-http
mod_proxy_http
가 제공하는
HTTP
요청에 대한 프록시 지원 기능을 사용한다.
이 모듈은 mod_proxy
모듈의 확장이므로,
--enable-proxy
도 같이 사용해야 한다.--enable-rewrite
mod_rewrite
가 제공하는 규칙기반
URL 조작 기능을 사용한다.--enable-so
mod_so
가 제공하는 DSO 기능을 사용한다.
--enable-mods-shared
옵션을 사용하면
자동으로 이 모듈을 포함한다.--enable-speling
mod_spelling
이 제공하는 URL에서
일반적인 맞춤법 실수를 고치는 기능을 사용한다.--enable-ssl
mod_ssl
이 제공하는 SSL/TLS 기능을
사용한다.--enable-unique-id
mod_unique_id
가 제공하는 요청마다
유일한 식별자를 만드는 기능을 사용한다.--enable-usertrack
mod_usertrack
이 제공하는 사용자세션
추적 기능을 사용한다.--enable-vhost-alias
mod_vhost_alias
가 제공하는 대량
가상호스트 기능을 사용한다.다음 모듈은 테스트용으로 개발자에게만 유용하며, 기본적으로 포함하지 않는다. 이 모듈을 사용하려면 다음 옵션을 사용한다. 이 모듈이 필요한지 확실치않다면 사용하지 마라.
--enable-bucketeer
mod_bucketeer
가 제공하는 버킷(bucket)
조작 필터를 사용한다.--enable-case-filter
mod_case_filter
의 대문자변환 출력필터
견본을 사용한다.--enable-case-filter-in
mod_case_filter_in
의 대문자변환 입력필터
견본을 사용한다.--enable-echo
mod_echo
가 제공하는 ECHO 서버를
사용한다.--enable-example
mod_example
을
사용한다.--enable-optional-fn-export
mod_optional_fn_export
가 제공하는 선택적인
함수 엑스포트(exporter)의 예를 사용한다.--enable-optional-fn-import
mod_optional_fn_import
가 제공하는 선택적인
함수 임포트(importer)의 예를 사용한다.--enable-optional-hook-export
mod_optional_hook_export
가 제공하는
선택적인 훅(hook) 엑스포트의 예를 사용한다.--enable-optional-hook-import
mod_optional_hook_import
가 제공하는
선택적인 훅 임포트의 예를 사용한다.다음 옵션을 사용하여 필요한 다중처리모듈과 제삼자가 만든 모듈을 추가한다:
--with-module=module-type:module-file
제삼자가 만든 모듈을 정적으로 링크할 모듈 목록에
추가한다. 아파치 웹서버 소스 트리의
modules/module-type
에서 모듈의
소스파일 module-file
을 찾기때문에
그곳에 소스파일이 있어야 한다. 그곳에 파일이 없다면
configure
는 module-file이
절대파일경로라고 가정하고 소스파일을
module-type 하위디렉토리에 복사하려고
시도한다.
이 옵션은 소스파일이 한개인 작은 외부 모듈을 추가하는데 유용하다. 더 복잡한 모듈은 개발사가 제공한 문서를 참고해야 한다.
--with-mpm=MPM
beos
,
leader
, mpmt_os2
,
perchild
, prefork
,
threadpool
, worker
가
있다.--enable-maintainer-mode
--enable-mods-shared=MODULE-LIST
동적공유모듈로 컴파일할 모듈 목록을 지정한다. 즉,
이 모듈들은 LoadModule
지시어를
사용하여 동적으로 읽어들여야 한다.
MODULE-LIST는 공백으로 구분한 모듈명들을
따옴표로 묶은 목록이다. 모듈명에서 앞에
mod_
는 뺀다. 예를 들어:
--enable-mods-shared='headers rewrite dav'
또, 특별한 키워드 all
과 most
를
사용할 수 있다. 예를 들어,
--enable-mods-shared=most
는 대부분의 모듈을 DSO 모듈로 컴파일한다.
--enable-modules=MODULE-LIST
--enable-mods-shared
와 비슷하지만,
이 옵션은 열거한 모듈들을 정적으로 링크한다. 즉, 이
모듈들은 httpd
실행하면 언제나 사용할
수 있다. LoadModule
로 읽어들일
필요가 없다.--enable-v4-mapped
--with-port=PORT
httpd
가 기다릴 포트를 지정한다. 이
포트번호는 설정파일 apache2.conf
를 만들때
쓰인다. 기본값은 80이다.--with-program-name
httpd
이다.다음 옵션은 추가 패키지를 선택한다.
일반적으로 다음과 같은 문법을 사용하여 추가 패키지를 다룬다:
--with-PACKAGE[=ARG]
yes
이다.--without-PACKAGE
--with-PACKAGE=no
와 같다.
autoconf
에 이 옵션이 있지만 아파치 웹서버와는
관계가 없다.--with-apr=DIR|FILE
httpd
소스 배포본에 포함된 Apache Portable
Runtime (APR)은 자동으로 웹서버와 같이 컴파일된다.
만약 이미 설치된 APR을 대신 사용하고 싶다면
configure
에게 apr-config
스크립트의 경로를 알려주어야 한다. APR가 설치된 절대경로,
파일명, 디렉토리명을 사용할 수 있다. 지정한 디렉토리나
그 디렉토리의 하위디렉토리 bin
에
apr-config
가 있어야 한다.--with-apr-util=DIR|FILE
httpd
소스 배포본에 포함된 Apache Portable
Runtime Utilities (APU)는 자동으로 웹서버와 같이
컴파일된다. 만약 이미 설치된 APU을 대신 사용하고 싶다면
configure
에게 apu-config
스크립트의 경로를 알려주어야 한다. APU가 설치된 절대경로,
파일명, 디렉토리명을 사용할 수 있다. 지정한 디렉토리나
그 디렉토리의 하위디렉토리 bin
에
apu-config
가 있어야 한다.--with-ssl=DIR
mod_ssl
을 사용하는 경우
configure
는 설치된 OpenSSL을 찾는다.
대신 이 옵션을 사용하여 SSL/TLS 도구의 디렉토리경로를
알려줄 수 있다.--with-z=DIR
mod_deflate
를 사용하는 경우와
같이) 구성에 필요하다면 자동으로 configure
는
설치된 zlib
라이브러리를 찾는다. 대신
이 옵션을 사용하여 압축 라이브러리의 디렉토리경로를
알려줄 수 있다.mod_authn_dbm
과
mod_rewrite
의 DBM RewriteMap
같은 아파치
웹서버의 일부 기능은 정보를 빨리 찾기위해 간단한 키/값
데이터베이스를 사용한다. APU에 SDBM이 들어있어서 언제나
최소한 이 데이터베이스는 사용할 수 있다. 다른 종류의
데이터베이스를 사용하고 싶다면 아래 옵션을 사용한다:
--with-gdbm[=path]
configure
는 일반적인 검색경로에서 설치된
GNU DBM 헤더파일과 라이브러리를 찾는다. 직접
path를 지정하면 configure
는
path/lib
과
path/include
에서 필요한 파일을
찾는다. 마지막으로 path에 헤더파일 경로와
라이브러리 경로를 콜론을 사이에 두고 같이 적을 수
있다.--with-ndbm[=path]
--with-gdbm
과 같지만 설치된 New DBM을
찾는다.--with-berkeley-db[=path]
--with-gdbm
과 같지만 설치된 Berkeley
DB를 찾는다.DBM 옵션은 APU가 제공하며 APU 구성스크립트로 직접
전달된다. 그래서 --with-apr-util
을 사용하여
이미 설치된 APU를 사용한다면 DBM 옵션은 소용이 없다.
웹서버는 여러 DBM 구현을 같이 사용할 수 있다. 실행시 적절한 DBM 종류를 설정할 수 있다.
--enable-static-support
--enable-suexec
suexec
를 사용하려면
이 옵션을 사용한다. suid 실행파일의 보안상 위험을
모두 알지 못한다면 이 옵션을 사용하지 마라.
suexec
를 구성하는 옵션은
아래에서 설명한다.다음 옵션을 사용하여 지원 프로그램별로 정적으로 링크된 실행파일을 만들 수 있다:
--enable-static-ab
ab
를 정적으로 링크된
실행파일로 컴파일한다.--enable-static-checkgid
checkgid
를 정적으로 링크된 실행파일로
컴파일한다.--enable-static-htdbm
htdbm
을 정적으로 링크된 실행파일로
컴파일한다.--enable-static-htdigest
htdigest
를
정적으로 링크된 실행파일로 컴파일한다.--enable-static-htpasswd
htpasswd
를
정적으로 링크된 실행파일로 컴파일한다.--enable-static-logresolve
logresolve
를
정적으로 링크된 실행파일로 컴파일한다.--enable-static-rotatelogs
rotatelogs
를
정적으로 링크된 실행파일로 컴파일한다.아래 옵션은 suexec
를 자세히 설정한다.
더 자세한 정보는 suEXEC
구성과 설치를 참고하라.
--with-suexec-bin
--sbindir
이다 (설치 디렉토리의 자세한
조정 참고).--with-suexec-caller
suexec
를 실행할 사용자를 지정한다.
이 사용자는 보통 httpd
를 실행하는 사용자와
같아야 한다.--with-suexec-docroot
suexec
는 이 옵션으로 지정한 디렉토리
아래에 있는 실행파일만을 실행할 수 있다. 기본값은
--datadir/htdocs
다.--with-suexec-gidmin
suexec
에서 지정가능한 최소 GID를 설정한다.
기본값은 100이다.--with-suexec-logfile
suexec
로그파일명을 지정한다. 로그파일명의
기본값은 suexec_log
이고,
--logfiledir
에 위치한다.--with-suexec-safepath
suexec
가 시작하는 프로세스의
PATH
환경변수값을 지정한다. 기본값은
/usr/local/bin:/usr/bin:/bin
이다.--with-suexec-userdir
suexec
가 접근할
수 있는 (실행파일이 있는) 하위디렉토리를 지정한다.
이 설정은 suexec
와
(mod_userdir
이 제공하는) 사용자별
디렉토리를 같이 사용할때 필요하다. 기본값은
public_html
이다.--with-suexec-uidmin
suexec
에서 지정가능한 최소 UID를 설정한다.
기본값은 100이다.--with-suexec-umask
suexec
가 실행하는 프로세스의
umask
를 지정한다. 기본값은 사용하는 시스템의
기본 설정과 같다.configure
의 선택을 무시하거나 관례와 다른
이름이나 위치에 있는 라이브러리와 프로그램을 찾도록 도와주는
유용한 환경변수들이 있다.
CC
CFLAGS
CPP
CPPFLAGS
-Iincludedir
을 사용한다.LDFLAGS
-Llibdir
을 사용한다.