Apache HTTP Server Version 2.2

This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.
You may follow this link to go to the current version of this document.
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, apachectl,
suexec 등 서버 프로그램을 말한다.
sbindir의 기본값은
EPREFIX/sbin이다.--sharedstatedir=DIRsharedstatedir의 기본값은
PREFIX/com이다.
autoconf에 이 옵션이 있지만 현재 사용하지
않는다.--sysconfdir=DIRhttpd.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_disk_cache나
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_disk_cache가 제공하는 디스크
캐싱 기능을 사용한다.--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가 기다릴 포트를 지정한다. 이
포트번호는 설정파일 httpd.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을 사용한다.