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-createconfigure 스크립트를 정상적으로 실행하지만,
출력파일을 만들지 않는다. 이 옵션은 컴파일을 위한 makefile을
만들기 이전에 검사 결과를 확인해볼때 유용하다.-q--quietchecking ... 문구를 출력하지
않는다.--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=LAYOUTconfig.layout 파일에 여러 설정 예가 있고,
이를 참고하여 직접 설정을 만들 수도 있다. 파일에서
각 구조는 <Layout
FOO>...</Layout>로 구분되며, 이
부분은 FOO라는 이름의 구조를 나타낸다.
구조의 기본값은 Apache이다.설치 디렉토리를 더 수정한다면 아래 옵션을 사용한다.
각 디렉토리의 기본값은 autoconf가 지정하며,
선택한 구조에 따라 다름을 주의하라.
--bindir=DIRhtpasswd와 dbmmanage 같은
지원 프로그램도 포함된다. DIR의 기본값은
EPREFIX/bin이다.--datadir=DIRdatadir의 기본값은
PREFIX/share이다.
autoconf에 이 옵션이 있지만 현재 사용하지
않는다.--includedir=DIRincludedir의 기본값은
EPREFIX/include이다.--infodir=DIRinfodir의 기본값은
PREFIX/info이다. 현재 이 옵션은
사용하지 않는다.--libdir=DIRlibdir의 기본값은
EPREFIX/lib이다.--libexecdir=DIRlibexecdir의 기본값은
EPREFIX/libexec이다.--localstatedir=DIRlocalstatedir의 기본값은
PREFIX/var이다.
autoconf에 이 옵션이 있지만 현재 사용하지
않는다.--mandir=DIRmandir의 기본값은
EPREFIX/man이다.--oldincludedir=DIRoldincludedir의 기본값은
/usr/include이다. autoconf에
이 옵션이 있지만 현재 사용하지 않는다.--sbindir=DIRhttpd, apache2ctl,
suexec 등 서버 프로그램을 말한다.
sbindir의 기본값은
EPREFIX/sbin이다.--sharedstatedir=DIRsharedstatedir의 기본값은
PREFIX/com이다.
autoconf에 이 옵션이 있지만 현재 사용하지
않는다.--sysconfdir=DIRapache2.conf,
mime.types와 같은 읽기전용 머쉰별 자료를
DIR에 설치한다. sysconfdir의
기본값은 PREFIX/etc이다.다른 시스템에서 실행할 아파치 웹서버를 교차컴파일하기(cross-compile)하기 위한 옵션들이다. 서버를 컴파일한 시스템에서 서버를 실행하는 일반적인 경우, 이 옵션을 사용하지 않는다.
--build=BUILDconfig.guess 스크립트의 결과이다.--host=HOST--target=TARGETautoconf에 이 옵션이 있지만 아파치 웹서버와는
관련이 없다.이 옵션은 웹서버의 세부 기능을 조절한다.
일반적으로 다음 문법을 사용하여 기능을 포함하고 뺀다:
--disable-FEATURE--enable-FEATURE=no와 같다.--enable-FEATURE[=ARG]yes이다.--enable-MODULE=shared--enable-MODULE=staticconfigure는 foo가 없는 경우
--enable-foo를 사용해도 이 사실을
알려주지 않으므로 주의해서 입력해야 한다.
어떤 모듈은 기본적으로 컴파일되기때문에 사용하지 않는다면 명시적으로 빼줘야 한다. 다음 옵션은 특정 모듈을 컴파일 과정에서 제외한다.
--disable-actionsmod_actions가 제공하는 요청에 대한
행동 기능을 사용하지 않는다.--disable-aliasmod_alias가 제공하는 요청을
파일시스템의 다른 부분으로 대응하는 기능을 사용하지
않는다.--disable-asismod_asis가 제공하는 as-is 파일형을
지원하지 않는다.--disable-authmod_auth가 제공하는 사용자별 접근제어
기능을 사용하지 않는다. 이 모듈은 사용자명과 암호를
일반 문자파일에 저장하는 HTTP Basic Authentication에서
사용한다.--disable-autoindexmod_autoindex가 제공하는 디렉토리
목록 기능을 사용하지 않는다.--disable-accessmod_access가 제공하는 호스트별
접근제어 기능을 사용하지 않는다.--disable-cgimod_cgi를 기본적으로 포함한다. 이
옵션을 사용하면 CGI를 지원하지 않는다.--disable-cgidworker나
perchild를 사용하는 경우 기본적으로
mod_cgid가 CGI 스크립트를 지원한다.
이 옵션을 사용하면 CGI를 지원하지 않는다.--disable-charset-litemod_charset_lite가 제공하는 문자집합
변환 기능을 사용하지 않는다. 이 모듈은 EBCDIC 시스템에서만
기본적으로 포함한다.--disable-dirmod_dir이 제공하는 디렉토리 요청
처리 기능을 사용하지 않는다.--disable-envmod_env가 제공하는 환경변수 설정/해제
기능을 사용하지 않는다.--disable-httphttp
모듈은 서버가 웹서버로 동작하는데 기본적인 모듈이다.
대신 다른 프로토콜 모듈을 사용할 경우에만 이 모듈이
유용하다. 자신이 무엇을 하는지 확실히 알지
못한다면 이 옵션을 빼지 마라
--disable-imagemapmod_imagemap이 제공하는 서버기반 imagemap
기능을 사용하지 않는다.--disable-includemod_include가 제공하는 Server Side
Includes 기능을 사용하지 않는다.--disable-log-configmod_log_config가 제공하는 로그
설정을 사용하지 않는다. 이 모듈이 없으면 서버의 요청을
로그에 기록할 수 없다.--disable-mimemod_mime은 요청한 파일명의 확장자에
따라 파일의 행동과 내용(mime-type, 언어, 문자집합,
인코딩)을 결정한다. (이 모듈을 제거하여) 파일 확장자를
MIME과 연관하지 않는 것을 일반적으로 추천하지 않는다.--disable-negotiationmod_negotiation이 제공하는 내용협상
기능을 사용하지 않는다.--disable-setenvifmod_setenvif가 제공하는 헤더에
따라 환경변수를 설정하는 기능을 사용하지 않는다.--disable-statusmod_status가 제공하는 프로세스/쓰레드
감시 기능을 사용하지 않는다.--disable-userdirmod_userdir이 제공하는 요청을 사용자별
디렉토리에 대응하는 기능을 사용하지 않는다.기본적으로 컴파일되는 모듈도 있지만, 모듈을 사용하려면
직접 혹은 most나 all 키워드를
사용하여 명시적으로 포함해야 하는 모듈이 있다. 그래서
아래 옵션들을 사용한다.
--enable-auth-anonmod_auth_anon이 제공하는 익명사용자
접근 기능을 사용한다.--enable-auth-dbmmod_auth_dbm은 사용자명과 암호를
DBM형식의 데이터베이스 파일에 저장하는 HTTP Basic
Authentication에서 사용한다. 모듈을 사용하려면 이
옵션을 사용한다.--enable-auth-digestmod_auth_digest가 제공하는 RFC2617
Digest authentication을 사용한다. 이 모듈은 정보를
일반 문자파일에 저장한다.--enable-authnz-ldapmod_authnz_ldap이 제공하는 LDAP기반
인증 기능을 사용한다.--enable-cachemod_cache가 제공하는 동적으로 생성하는
파일의 캐싱 기능을 사용한다. 매우 부하가 많거나 프록시
서버를 캐싱하는 서버에게 이 실험적인 모듈이 유용할
수 있다. 최소한 한가지 저장관리모듈(storage management
module)을 (예를 들어, mod_cache_disk나
mod_mem_cache) 같이 사용해야 한다.--enable-cern-metamod_cern_meta가 제공하는 CERN 메타파일
지원 기능을 사용한다.--enable-charset-litemod_charset_lite가 제공하는 문자집합
변환 기능을 사용한다. 이 모듈은 EBCDIC 시스템에서만
기본적으로 포함된다. 다른 시스템에서는 직접 포함시켜줘야
한다.--enable-davmod_dav가 제공하는 WebDAV 프로토콜
처리 기능을 사용한다. 독립된 mod_dav_fs
모듈이 파일시스템 자원을 지원한다. 이 모듈은
--enable-dav를 사용하면 자동으로 포함한다.mod_dav는 http
프로토콜 모듈과 같이 사용해야 한다.--enable-dav-fsmod_dav_fs가 제공하는 DAV의 파일시스템
자원 지원 기능을 사용한다. 이 모듈은
mod_dav 모듈을 위한 제공자이기 때문에
--enable-dav도 사용해야 한다.--enable-deflatemod_deflate가 제공하는 압축전송
인코딩 기능을 사용한다.--enable-disk-cachemod_cache_disk가 제공하는 디스크
캐싱 기능을 사용한다.--enable-expiresmod_expires가 제공하는 Expires
헤더 조절 기능을 사용한다.--enable-ext-filtermod_ext_filter가 제공하는 외부
필터 지원 기능을 사용한다.--enable-file-cachemod_file_cache가 제공하는 파일
캐싱 기능을 사용한다.--enable-headersmod_headers가 제공하는 HTTP 헤더
조절 기능을 사용한다.--enable-infomod_info가 제공하는 서버정보 기능을
사용한다.--enable-ldapmod_ldap이 제공하는 LDAP 캐싱과
연결풀 기능을 사용한다.--enable-logiomod_logio가 제공하는 로그에 헤더와
입출력 바이트수를 기록하는 기능을 사용한다.--enable-mem-cachemod_mem_cache가 제공하는 메모리
캐싱 기능을 사용한다.--enable-mime-magicmod_mime_magic이 제공하는 MIME
type 자동 인식 기능을 사용한다.--enable-isapimod_isapi가 제공하는 isapi 확장을
지원한다.--enable-proxymod_proxy가 제공하는 프록시/게이트웨이
기능을 사용한다. CONNECT, FTP,
HTTP에 대한 프록시 기능을 각각
mod_proxy_connect,
mod_proxy_ftp,
mod_proxy_http
모듈이 제공한다. --enable-proxy를 사용하면
이 세 모듈을 자동으로 포함한다.--enable-proxy-connectmod_proxy_connect가 제공하는
CONNECT 요청에 대한 프록시 지원 기능을
사용한다. 이 모듈은 mod_proxy 모듈의
확장이므로, --enable-proxy도 같이 사용해야
한다.--enable-proxy-ftpmod_proxy_ftp가 제공하는
FTP 요청에 대한 프록시 지원 기능을 사용한다.
이 모듈은 mod_proxy 모듈의 확장이므로,
--enable-proxy도 같이 사용해야 한다.--enable-proxy-httpmod_proxy_http가 제공하는
HTTP 요청에 대한 프록시 지원 기능을 사용한다.
이 모듈은 mod_proxy 모듈의 확장이므로,
--enable-proxy도 같이 사용해야 한다.--enable-rewritemod_rewrite가 제공하는 규칙기반
URL 조작 기능을 사용한다.--enable-somod_so가 제공하는 DSO 기능을 사용한다.
--enable-mods-shared 옵션을 사용하면
자동으로 이 모듈을 포함한다.--enable-spelingmod_spelling이 제공하는 URL에서
일반적인 맞춤법 실수를 고치는 기능을 사용한다.--enable-sslmod_ssl이 제공하는 SSL/TLS 기능을
사용한다.--enable-unique-idmod_unique_id가 제공하는 요청마다
유일한 식별자를 만드는 기능을 사용한다.--enable-usertrackmod_usertrack이 제공하는 사용자세션
추적 기능을 사용한다.--enable-vhost-aliasmod_vhost_alias가 제공하는 대량
가상호스트 기능을 사용한다.다음 모듈은 테스트용으로 개발자에게만 유용하며, 기본적으로 포함하지 않는다. 이 모듈을 사용하려면 다음 옵션을 사용한다. 이 모듈이 필요한지 확실치않다면 사용하지 마라.
--enable-bucketeermod_bucketeer가 제공하는 버킷(bucket)
조작 필터를 사용한다.--enable-case-filtermod_case_filter의 대문자변환 출력필터
견본을 사용한다.--enable-case-filter-inmod_case_filter_in의 대문자변환 입력필터
견본을 사용한다.--enable-echomod_echo가 제공하는 ECHO 서버를
사용한다.--enable-examplemod_example을
사용한다.--enable-optional-fn-exportmod_optional_fn_export가 제공하는 선택적인
함수 엑스포트(exporter)의 예를 사용한다.--enable-optional-fn-importmod_optional_fn_import가 제공하는 선택적인
함수 임포트(importer)의 예를 사용한다.--enable-optional-hook-exportmod_optional_hook_export가 제공하는
선택적인 훅(hook) 엑스포트의 예를 사용한다.--enable-optional-hook-importmod_optional_hook_import가 제공하는
선택적인 훅 임포트의 예를 사용한다.다음 옵션을 사용하여 필요한 다중처리모듈과 제삼자가 만든 모듈을 추가한다:
--with-module=module-type:module-file
제삼자가 만든 모듈을 정적으로 링크할 모듈 목록에
추가한다. 아파치 웹서버 소스 트리의
modules/module-type에서 모듈의
소스파일 module-file을 찾기때문에
그곳에 소스파일이 있어야 한다. 그곳에 파일이 없다면
configure는 module-file이
절대파일경로라고 가정하고 소스파일을
module-type 하위디렉토리에 복사하려고
시도한다.
이 옵션은 소스파일이 한개인 작은 외부 모듈을 추가하는데 유용하다. 더 복잡한 모듈은 개발사가 제공한 문서를 참고해야 한다.
--with-mpm=MPMbeos,
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=PORThttpd가 기다릴 포트를 지정한다. 이
포트번호는 설정파일 apache2.conf를 만들때
쓰인다. 기본값은 80이다.--with-program-namehttpd이다.다음 옵션은 추가 패키지를 선택한다.
일반적으로 다음과 같은 문법을 사용하여 추가 패키지를 다룬다:
--with-PACKAGE[=ARG]yes이다.--without-PACKAGE--with-PACKAGE=no와 같다.
autoconf에 이 옵션이 있지만 아파치 웹서버와는
관계가 없다.--with-apr=DIR|FILEhttpd 소스 배포본에 포함된 Apache Portable
Runtime (APR)은 자동으로 웹서버와 같이 컴파일된다.
만약 이미 설치된 APR을 대신 사용하고 싶다면
configure에게 apr-config
스크립트의 경로를 알려주어야 한다. APR가 설치된 절대경로,
파일명, 디렉토리명을 사용할 수 있다. 지정한 디렉토리나
그 디렉토리의 하위디렉토리 bin에
apr-config가 있어야 한다.--with-apr-util=DIR|FILEhttpd 소스 배포본에 포함된 Apache Portable
Runtime Utilities (APU)는 자동으로 웹서버와 같이
컴파일된다. 만약 이미 설치된 APU을 대신 사용하고 싶다면
configure에게 apu-config
스크립트의 경로를 알려주어야 한다. APU가 설치된 절대경로,
파일명, 디렉토리명을 사용할 수 있다. 지정한 디렉토리나
그 디렉토리의 하위디렉토리 bin에
apu-config가 있어야 한다.--with-ssl=DIRmod_ssl을 사용하는 경우
configure는 설치된 OpenSSL을 찾는다.
대신 이 옵션을 사용하여 SSL/TLS 도구의 디렉토리경로를
알려줄 수 있다.--with-z=DIRmod_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-suexecsuexec를 사용하려면
이 옵션을 사용한다. suid 실행파일의 보안상 위험을
모두 알지 못한다면 이 옵션을 사용하지 마라.
suexec를 구성하는 옵션은
아래에서 설명한다.다음 옵션을 사용하여 지원 프로그램별로 정적으로 링크된 실행파일을 만들 수 있다:
--enable-static-abab를 정적으로 링크된
실행파일로 컴파일한다.--enable-static-checkgidcheckgid를 정적으로 링크된 실행파일로
컴파일한다.--enable-static-htdbmhtdbm을 정적으로 링크된 실행파일로
컴파일한다.--enable-static-htdigesthtdigest를
정적으로 링크된 실행파일로 컴파일한다.--enable-static-htpasswdhtpasswd를
정적으로 링크된 실행파일로 컴파일한다.--enable-static-logresolvelogresolve를
정적으로 링크된 실행파일로 컴파일한다.--enable-static-rotatelogsrotatelogs를
정적으로 링크된 실행파일로 컴파일한다.아래 옵션은 suexec를 자세히 설정한다.
더 자세한 정보는 suEXEC
구성과 설치를 참고하라.
--with-suexec-bin--sbindir이다 (설치 디렉토리의 자세한
조정 참고).--with-suexec-callersuexec를 실행할 사용자를 지정한다.
이 사용자는 보통 httpd를 실행하는 사용자와
같아야 한다.--with-suexec-docrootsuexec는 이 옵션으로 지정한 디렉토리
아래에 있는 실행파일만을 실행할 수 있다. 기본값은
--datadir/htdocs다.--with-suexec-gidminsuexec에서 지정가능한 최소 GID를 설정한다.
기본값은 100이다.--with-suexec-logfilesuexec 로그파일명을 지정한다. 로그파일명의
기본값은 suexec_log이고,
--logfiledir에 위치한다.--with-suexec-safepathsuexec가 시작하는 프로세스의
PATH 환경변수값을 지정한다. 기본값은
/usr/local/bin:/usr/bin:/bin이다.--with-suexec-userdirsuexec가 접근할
수 있는 (실행파일이 있는) 하위디렉토리를 지정한다.
이 설정은 suexec와
(mod_userdir이 제공하는) 사용자별
디렉토리를 같이 사용할때 필요하다. 기본값은
public_html이다.--with-suexec-uidminsuexec에서 지정가능한 최소 UID를 설정한다.
기본값은 100이다.--with-suexec-umasksuexec가 실행하는 프로세스의
umask를 지정한다. 기본값은 사용하는 시스템의
기본 설정과 같다.configure의 선택을 무시하거나 관례와 다른
이름이나 위치에 있는 라이브러리와 프로그램을 찾도록 도와주는
유용한 환경변수들이 있다.
CCCFLAGSCPPCPPFLAGS-Iincludedir을 사용한다.LDFLAGS-Llibdir을 사용한다.