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-actions--disable-alias--disable-asis--disable-auth--disable-autoindex--disable-access--disable-cgi--disable-cgid--disable-charset-lite--disable-dir--disable-env--disable-httphttp
모듈은 서버가 웹서버로 동작하는데 기본적인 모듈이다.
대신 다른 프로토콜 모듈을 사용할 경우에만 이 모듈이
유용하다. 자신이 무엇을 하는지 확실히 알지
못한다면 이 옵션을 빼지 마라
--disable-imagemap--disable-include--disable-log-config--disable-mime--disable-negotiation--disable-setenvif--disable-status--disable-userdir기본적으로 컴파일되는 모듈도 있지만, 모듈을 사용하려면
직접 혹은 most나 all 키워드를
사용하여 명시적으로 포함해야 하는 모듈이 있다. 그래서
아래 옵션들을 사용한다.
--enable-auth-anon--enable-auth-dbm--enable-auth-digest--enable-authnz-ldap--enable-cache--enable-cern-meta--enable-charset-lite--enable-dav--enable-dav를 사용하면 자동으로 포함한다.http
프로토콜 모듈과 같이 사용해야 한다.--enable-dav-fs--enable-dav도 사용해야 한다.--enable-deflate--enable-disk-cache--enable-expires--enable-ext-filter--enable-file-cache--enable-headers--enable-info--enable-ldap--enable-logio--enable-mem-cache--enable-mime-magic--enable-isapi--enable-proxyCONNECT, FTP,
HTTP에 대한 프록시 기능을 각각
--enable-proxy를 사용하면
이 세 모듈을 자동으로 포함한다.--enable-proxy-connectCONNECT 요청에 대한 프록시 지원 기능을
사용한다. 이 모듈은 --enable-proxy도 같이 사용해야
한다.--enable-proxy-ftpFTP 요청에 대한 프록시 지원 기능을 사용한다.
이 모듈은 --enable-proxy도 같이 사용해야 한다.--enable-proxy-httpHTTP 요청에 대한 프록시 지원 기능을 사용한다.
이 모듈은 --enable-proxy도 같이 사용해야 한다.--enable-rewrite--enable-so--enable-mods-shared 옵션을 사용하면
자동으로 이 모듈을 포함한다.--enable-speling--enable-ssl--enable-unique-id--enable-usertrack--enable-vhost-alias다음 모듈은 테스트용으로 개발자에게만 유용하며, 기본적으로 포함하지 않는다. 이 모듈을 사용하려면 다음 옵션을 사용한다. 이 모듈이 필요한지 확실치않다면 사용하지 마라.
--enable-bucketeermod_bucketeer가 제공하는 버킷(bucket)
조작 필터를 사용한다.--enable-case-filtermod_case_filter의 대문자변환 출력필터
견본을 사용한다.--enable-case-filter-inmod_case_filter_in의 대문자변환 입력필터
견본을 사용한다.--enable-echo--enable-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=MPM--enable-maintainer-mode--enable-mods-shared=MODULE-LIST동적공유모듈로 컴파일할 모듈 목록을 지정한다. 즉,
이 모듈들은
MODULE-LIST는 공백으로 구분한 모듈명들을
따옴표로 묶은 목록이다. 모듈명에서 앞에
mod_는 뺀다. 예를 들어:
또, 특별한 키워드 all과 most를
사용할 수 있다. 예를 들어,
는 대부분의 모듈을 DSO 모듈로 컴파일한다.
--enable-modules=MODULE-LIST--enable-mods-shared와 비슷하지만,
이 옵션은 열거한 모듈들을 정적으로 링크한다. 즉, 이
모듈들은 httpd 실행하면 언제나 사용할
수 있다. --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=DIRconfigure는 설치된 OpenSSL을 찾는다.
대신 이 옵션을 사용하여 SSL/TLS 도구의 디렉토리경로를
알려줄 수 있다.--with-z=DIRconfigure는
설치된 zlib 라이브러리를 찾는다. 대신
이 옵션을 사용하여 압축 라이브러리의 디렉토리경로를
알려줄 수 있다.--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와
(public_html이다.--with-suexec-uidminsuexec에서 지정가능한 최소 UID를 설정한다.
기본값은 100이다.--with-suexec-umasksuexec가 실행하는 프로세스의
umask를 지정한다. 기본값은 사용하는 시스템의
기본 설정과 같다.configure의 선택을 무시하거나 관례와 다른
이름이나 위치에 있는 라이브러리와 프로그램을 찾도록 도와주는
유용한 환경변수들이 있다.
CCCFLAGSCPPCPPFLAGS-Iincludedir을 사용한다.LDFLAGS-Llibdir을 사용한다.