'ITWeb/서버관리'에 해당되는 글 125건
- 2011.09.07 설치 S/W
- 2011.05.04 [스크랩] Apache Configure
- 2011.04.28 [서버관리] ssh, samba, sftp ...
- 2010.04.12 데이터베이스 트랜잭션 ACID 란?
- 2010.02.08 사내 운영툴 Referrer 제거하기.
- 2009.05.13 [링크] MySQL 에서 SELECT ... IN () 크기 제한
- 2009.04.22 MySQL Start, Stop 명령
- 2009.03.31 apache mod_expires 설정
- 2009.01.13 apache trace method
- 2009.01.09 apache DirectoryIndex 란?
[스크랩] Apache Configure
ITWeb/서버관리 2011. 5. 4. 08:36# apache configure
http://httpd.apache.org/docs/2.0/programs/configure.html
아래는 apache.org 에 번역된 내용과 ./configure 했을 때 나오는 내용을 스크랩한 것입니다.
구성 옵션
이 옵션들은 configure
자체 행동에 영향을 준다.
-C
--config-cache
--cache-file=config.cache
와 같다.--cache-file=FILE
- 검사 결과를 FILE 파일에 캐싱한다. 기본값은 검사 결과를 기록하지 않는다.
-h
--help [short|recursive]
- 도움말을 출력하고 종료한다.
short
아규먼트는 이 패키지 특유의 옵션만을 출력한다.recursive
아규먼트는 포함된 모든 패키지에 대한 짧은 도움말을 보여준다. -n
--no-create
configure
스크립트를 정상적으로 실행하지만, 출력파일을 만들지 않는다. 이 옵션은 컴파일을 위한 makefile을 만들기 이전에 검사 결과를 확인해볼때 유용하다.-q
--quiet
- 실행중에
checking ...
문구를 출력하지 않는다. --srcdir=DIR
- DIR 디렉토리를 소스파일 디렉토리로 지정한다. 기본값은 configure가 있는 디렉토리 혹은 상위디렉토리
..
이다. --silent
--quiet
와 같다.- -V
- --version
- 저작권 정보를 출력하고 종료한다.
설치 디렉토리
이 옵션들은 설치 디렉토리를 지정한다. 설치 위치는 선택한 구조(layout)에 따라 다르다.
--prefix=PREFIX
- 아키텍쳐에 독립적인 파일을 PREFIX에 설치한다. 기본값은
/usr/local/apache2
이다. --exec-prefix=EPREFIX
- 아키텍쳐에 의존적인 파일을 EPREFIX에 설치한다. 기본값은 PREFIX 디렉토리이다.
기본적으로 make install
은 /usr/local/apache2/bin
, /usr/local/apache2/lib
와 같은 위치에 모든 파일을 설치한다. --prefix=$HOME
과 같이 --prefix
옵션을 사용하여 /usr/local/apache2
이외의 설치 상위디렉토리를 지정할 수 있다.
디렉토리 구조 지정
--enable-layout=LAYOUT
- 설치 위치를 LAYOUT 구조에 따르도록 소스코드와 컴파일 스크립트를 구성한다. 구조를 사용하면 파일 종류에 따라 설치 위치를 따로 지정할 수 있다.
config.layout
파일에 여러 설정 예가 있고, 이를 참고하여 직접 설정을 만들 수도 있다. 파일에서 각 구조는<Layout FOO>...</Layout>
로 구분되며, 이 부분은FOO
라는 이름의 구조를 나타낸다. 구조의 기본값은Apache
이다.
설치 디렉토리의 자세한 조정
설치 디렉토리를 더 수정한다면 아래 옵션을 사용한다. 각 디렉토리의 기본값은 autoconf
가 지정하며, 선택한 구조에 따라 다름을 주의하라.
--bindir=DIR
- 사용자 실행파일을 DIR에 설치한다. 사용자 실행파일에는 사이트 관리자에게 유용한
htpasswd
와dbmmanage
같은 지원 프로그램도 포함된다. DIR의 기본값은EPREFIX/bin
이다. --datadir=DIR
- 아키텍쳐 독립적인 읽기전용 자료를 DIR에 설치한다.
datadir
의 기본값은PREFIX/share
이다.autoconf
에 이 옵션이 있지만 현재 사용하지 않는다. --includedir=DIR
- C 헤더파일을 DIR에 설치한다.
includedir
의 기본값은EPREFIX/include
이다. --infodir=DIR
- info 문서를 DIR에 설치한다.
infodir
의 기본값은PREFIX/info
이다. 현재 이 옵션은 사용하지 않는다. --libdir=DIR
- 오브젝트코드 라이브러리를 DIR에 설치한다.
libdir
의 기본값은EPREFIX/lib
이다. --libexecdir=DIR
- 프로그램 실행파일을 (즉, 공유모듈) DIR에 설치한다.
libexecdir
의 기본값은EPREFIX/libexec
이다. --localstatedir=DIR
- 변경되는 머쉰별 정보를 DIR에 설치한다.
localstatedir
의 기본값은PREFIX/var
이다.autoconf
에 이 옵션이 있지만 현재 사용하지 않는다. --mandir=DIR
- man 문서를 DIR에 설치한다.
mandir
의 기본값은EPREFIX/man
이다. --oldincludedir=DIR
- gcc가 아닌 컴파일러를 위한 C 헤더파일을 DIR에 설치한다.
oldincludedir
의 기본값은/usr/include
이다.autoconf
에 이 옵션이 있지만 현재 사용하지 않는다. --sbindir=DIR
- 시스템 관리자용 실행파일을 DIR에 설치한다. 시스템 관리자용 실행파일이란 아파치 웹서버를 실행하는데 필요한
httpd
,apachectl
,suexec
등 서버 프로그램을 말한다.sbindir
의 기본값은EPREFIX/sbin
이다. --sharedstatedir=DIR
- 변경되는 아키텍쳐 독립적인 자료를 DIR에 설치한다.
sharedstatedir
의 기본값은PREFIX/com
이다.autoconf
에 이 옵션이 있지만 현재 사용하지 않는다. --sysconfdir=DIR
- 서버 설정파일
httpd.conf
,mime.types
와 같은 읽기전용 머쉰별 자료를 DIR에 설치한다.sysconfdir
의 기본값은PREFIX/etc
이다.
시스템 종류
다른 시스템에서 실행할 아파치 웹서버를 교차컴파일하기(cross-compile)하기 위한 옵션들이다. 서버를 컴파일한 시스템에서 서버를 실행하는 일반적인 경우, 이 옵션을 사용하지 않는다.
--build=BUILD
- 도구를 컴파일하는 시스템의 종류를 지정한다. 기본값은
config.guess
스크립트의 결과이다. --host=HOST
- 서버를 실행할 시스템의 종류를 지정한다. HOST의 기본값은 BUILD이다.
--target=TARGET
- TARGET 시스템 종류를 위한 컴파일러를 만들때 사용한다. 기본값은 HOST이다.
autoconf
에 이 옵션이 있지만 아파치 웹서버와는 관련이 없다.
기능 선택
이 옵션은 웹서버의 세부 기능을 조절한다.
일반적인 문법
일반적으로 다음 문법을 사용하여 기능을 포함하고 뺀다:
--disable-FEATURE
- FEATURE 기능을 뺀다.
--enable-FEATURE=no
와 같다. --enable-FEATURE[=ARG]
- FEATURE 기능을 포함한다. ARG의 기본값은
yes
이다. --enable-MODULE=shared
- 해당 모듈을 DSO 모듈로 컴파일한다.
--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
- 비쓰레드 MPM을 사용하는 경우 CGI 스크립트를 지원하는
mod_cgi
를 기본적으로 포함한다. 이 옵션을 사용하면 CGI를 지원하지 않는다. --disable-cgid
- 쓰레드 MPM인
worker
나perchild
를 사용하는 경우 기본적으로mod_cgid
가 CGI 스크립트를 지원한다. 이 옵션을 사용하면 CGI를 지원하지 않는다. --disable-charset-lite
mod_charset_lite
가 제공하는 문자집합 변환 기능을 사용하지 않는다. 이 모듈은 EBCDIC 시스템에서만 기본적으로 포함한다.--disable-dir
mod_dir
이 제공하는 디렉토리 요청 처리 기능을 사용하지 않는다.--disable-env
mod_env
가 제공하는 환경변수 설정/해제 기능을 사용하지 않는다.--disable-http
- HTTP 프로토콜을 처리하지 않는다.
http
모듈은 서버가 웹서버로 동작하는데 기본적인 모듈이다. 대신 다른 프로토콜 모듈을 사용할 경우에만 이 모듈이 유용하다. 자신이 무엇을 하는지 확실히 알지 못한다면 이 옵션을 빼지 마라
주의: 이 모듈은 항상 정적으로 링크된다. --disable-imap
mod_imap
이 제공하는 서버기반 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-auth-ldap
mod_auth_ldap
이 제공하는 LDAP기반 인증 기능을 사용한다.--enable-cache
mod_cache
가 제공하는 동적으로 생성하는 파일의 캐싱 기능을 사용한다. 매우 부하가 많거나 프록시 서버를 캐싱하는 서버에게 이 실험적인 모듈이 유용할 수 있다. 최소한 한가지 저장관리모듈(storage management module)을 (예를 들어,mod_disk_cache
나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_disk_cache
가 제공하는 디스크 캐싱 기능을 사용한다.--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
가 제공하는 선택적인 훅 임포트의 예를 사용한다.
MPM과 제삼자가 만든 모듈
다음 옵션을 사용하여 필요한 다중처리모듈과 제삼자가 만든 모듈을 추가한다:
--with-module=module-type:module-file
-
제삼자가 만든 모듈을 정적으로 링크할 모듈 목록에 추가한다. 아파치 웹서버 소스 트리의
modules/module-type
에서 모듈의 소스파일module-file
을 찾기때문에 그곳에 소스파일이 있어야 한다. 그곳에 파일이 없다면configure
는 module-file이 절대파일경로라고 가정하고 소스파일을 module-type 하위디렉토리에 복사하려고 시도한다.이 옵션은 소스파일이 한개인 작은 외부 모듈을 추가하는데 유용하다. 더 복잡한 모듈은 개발사가 제공한 문서를 참고해야 한다.
주의
정적으로 링크된 모듈이 아닌 DSO 모듈을 원한다면 apxs를 사용하라. --with-mpm=MPM
- 서버의 동작방식을 선택한다. 정확히 한가지 다중처리모듈만을 선택해야 한다. 선택하지 않으면 사용하는 운영체제의 기본 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
- IPv6 소켓이 IPv4 연결을 처리할 수 있도록 한다.
--with-port=PORT
httpd
가 기다릴 포트를 지정한다. 이 포트번호는 설정파일httpd.conf
를 만들때 쓰인다. 기본값은 80이다.--with-program-name
- 다른 실행파일명을 지정한다. 기본값은
httpd
이다.
추가 패키지 선택
다음 옵션은 추가 패키지를 선택한다.
일반적인 문법
일반적으로 다음과 같은 문법을 사용하여 추가 패키지를 다룬다:
--with-PACKAGE[=ARG]
- 패키지 PACKAGE를 사용한다. ARG의 기본값은
yes
이다. --without-PACKAGE
- 패키지 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]
- 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
- 웹서버가 실행하는 프로세스의 uid와 gid를 설정하는
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
를 자세히 설정한다. 더 자세한 정보는 suEXEC 구성과 설치를 참고하라.
--with-suexec-bin
- suexec 실행파일의 경로를 지정한다. 기본값은
--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
를 지정한다. 기본값은 사용하는 시스템의 기본 설정과 같다.
Fine tuning of the installation directories:
--bindir=DIR user executables [EPREFIX/bin]
--sbindir=DIR system admin executables [EPREFIX/sbin]
--libexecdir=DIR program executables [EPREFIX/libexec]
--sysconfdir=DIR read-only single-machine data [PREFIX/etc]
--sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
--localstatedir=DIR modifiable single-machine data [PREFIX/var]
--libdir=DIR object code libraries [EPREFIX/lib]
--includedir=DIR C header files [PREFIX/include]
--oldincludedir=DIR C header files for non-gcc [/usr/include]
--datarootdir=DIR read-only arch.-independent data root [PREFIX/share]
--datadir=DIR read-only architecture-independent data [DATAROOTDIR]
--infodir=DIR info documentation [DATAROOTDIR/info]
--localedir=DIR locale-dependent data [DATAROOTDIR/locale]
--mandir=DIR man documentation [DATAROOTDIR/man]
--docdir=DIR documentation root [DATAROOTDIR/doc/PACKAGE]
--htmldir=DIR html documentation [DOCDIR]
--dvidir=DIR dvi documentation [DOCDIR]
--pdfdir=DIR pdf documentation [DOCDIR]
--psdir=DIR ps documentation [DOCDIR]
System types:
--build=BUILD configure for building on BUILD [guessed]
--host=HOST cross-compile to build programs to run on HOST [BUILD]
--target=TARGET configure for building compilers for TARGET [HOST]
Optional Features:
--disable-option-checking ignore unrecognized --enable/--with options
--disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
--enable-FEATURE[=ARG] include FEATURE [ARG=yes]
--enable-layout=LAYOUT
--enable-v4-mapped Allow IPv6 sockets to handle IPv4 connections
--enable-exception-hook Enable fatal exception hook
--enable-maintainer-mode
Turn on debugging and compile time warnings
--enable-pie Build httpd as a Position Independent Executable
--enable-modules=MODULE-LIST
Space-separated list of modules to enable | "all" |
"most"
--enable-mods-shared=MODULE-LIST
Space-separated list of shared modules to enable |
"all" | "most"
--disable-authn-file file-based authentication control
--enable-authn-dbm DBM-based authentication control
--enable-authn-anon anonymous user authentication control
--enable-authn-dbd SQL-based authentication control
--disable-authn-default authentication backstopper
--enable-authn-alias auth provider alias
--disable-authz-host host-based authorization control
--disable-authz-groupfile
'require group' authorization control
--disable-authz-user 'require user' authorization control
--enable-authz-dbm DBM-based authorization control
--enable-authz-owner 'require file-owner' authorization control
--enable-authnz-ldap LDAP based authentication
--disable-authz-default authorization control backstopper
--disable-auth-basic basic authentication
--enable-auth-digest RFC2617 Digest authentication
--enable-isapi isapi extension support
--enable-file-cache File cache
--enable-cache dynamic file caching
--enable-disk-cache disk caching module
--enable-mem-cache memory caching module
--enable-dbd Apache DBD Framework
--enable-bucketeer buckets manipulation filter
--enable-dumpio I/O dump filter
--enable-echo ECHO server
--enable-example example and demo module
--enable-case-filter example uppercase conversion filter
--enable-case-filter-in example uppercase conversion input filter
--enable-reqtimeout Limit time waiting for request from client
--enable-ext-filter external filter module
--disable-include Server Side Includes
--disable-filter Smart Filtering
--enable-substitute response content rewrite-like filtering
--disable-charset-lite character set translation
--enable-charset-lite character set translation
--enable-deflate Deflate transfer encoding support
--enable-ldap LDAP caching and connection pooling services
--disable-log-config logging configuration
--enable-log-forensic forensic logging
--enable-logio input and output logging
--disable-env clearing/setting of ENV vars
--enable-mime-magic automagically determining MIME type
--enable-cern-meta CERN-type meta files
--enable-expires Expires header control
--enable-headers HTTP header control
--enable-ident RFC 1413 identity check
--enable-usertrack user-session tracking
--enable-unique-id per-request unique ids
--disable-setenvif basing ENV vars on headers
--disable-version determining httpd version in config files
--enable-proxy Apache proxy module
--enable-proxy-connect Apache proxy CONNECT module
--enable-proxy-ftp Apache proxy FTP module
--enable-proxy-http Apache proxy HTTP module
--enable-proxy-scgi Apache proxy SCGI module
--enable-proxy-ajp Apache proxy AJP module
--enable-proxy-balancer Apache proxy BALANCER module
--enable-ssl SSL/TLS support (mod_ssl)
--enable-distcache Select distcache support in mod_ssl
--enable-optional-hook-export
example optional hook exporter
--enable-optional-hook-import
example optional hook importer
--enable-optional-fn-import
example optional function importer
--enable-optional-fn-export
example optional function exporter
--enable-static-support Build a statically linked version of the support
binaries
--enable-static-htpasswd
Build a statically linked version of htpasswd
--enable-static-htdigest
Build a statically linked version of htdigest
--enable-static-rotatelogs
Build a statically linked version of rotatelogs
--enable-static-logresolve
Build a statically linked version of logresolve
--enable-static-htdbm Build a statically linked version of htdbm
--enable-static-ab Build a statically linked version of ab
--enable-static-checkgid
Build a statically linked version of checkgid
--enable-static-htcacheclean
Build a statically linked version of htcacheclean
--enable-static-httxt2dbm
Build a statically linked version of httxt2dbm
--enable-http HTTP protocol handling
--disable-mime mapping of file-extension to MIME
--enable-dav WebDAV protocol handling
--disable-status process/thread monitoring
--disable-autoindex directory listing
--disable-asis as-is filetypes
--enable-info server information
--enable-suexec set uid and gid for spawned processes
--disable-cgid CGI scripts
--enable-cgi CGI scripts
--disable-cgi CGI scripts
--enable-cgid CGI scripts
--enable-dav-fs DAV provider for the filesystem
--enable-dav-lock DAV provider for generic locking
--enable-vhost-alias mass virtual hosting module
--disable-negotiation content negotiation
--disable-dir directory request handling
--enable-imagemap server-side imagemaps
--disable-actions Action triggering on requests
--enable-speling correct common URL misspellings
--disable-userdir mapping of requests to user-specific directories
--disable-alias mapping of requests to different filesystem parts
--enable-rewrite rule based URL manipulation
--enable-so DSO capability
Optional Packages:
--with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
--without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
--with-included-apr Use bundled copies of APR/APR-Util
--with-apr=PATH prefix for installed APR or the full path to
apr-config
--with-apr-util=PATH prefix for installed APU or the full path to
apu-config
--with-pcre=PATH Use external PCRE library
--with-port=PORT Port on which to listen (default is 80)
--with-sslport=SSLPORT Port on which to securelisten (default is 443)
--with-z=DIR use a specific zlib library
--with-sslc=DIR RSA SSL-C SSL/TLS toolkit
--with-ssl=DIR OpenSSL SSL/TLS toolkit
--with-mpm=MPM Choose the process model for Apache to use.
MPM={beos|event|worker|prefork|mpmt_os2}
--with-module=module-type:module-file
Enable module-file in the modules/<module-type>
directory.
--with-program-name alternate executable name
--with-suexec-bin Path to suexec binary
--with-suexec-caller User allowed to call SuExec
--with-suexec-userdir User subdirectory
--with-suexec-docroot SuExec root directory
--with-suexec-uidmin Minimal allowed UID
--with-suexec-gidmin Minimal allowed GID
--with-suexec-logfile Set the logfile
--with-suexec-safepath Set the safepath
--with-suexec-umask umask for suexec'd process
[서버관리] ssh, samba, sftp ...
ITWeb/서버관리 2011. 4. 28. 14:20데이터베이스 트랜잭션 ACID 란?
ITWeb/서버관리 2010. 4. 12. 12:58ACID(원자성,일관성,독립성,지속성)는 데이터베이스 트랜젝션이 안전하게 수행되는 것을 보장하는 특성 집합이다. 데이터베이스에서 데이터에 대한 하나의 논리적 실행단계를 트랜잭션이라고 한다. 여러 개별 단계로 이루어진다하더라도 은행 계좌이체를 트랜잭션의 예로 들 수 있다.
- 원자성(Atomicity)은 트래잭션과 관련 된 일들이 모두 수행되었는지 아니면 모두 실행이 안되었는지를 보장하는 능력이다. 자금 이체는 성공할 수도 실패할 수도 있지만 원자성은 중간 단계까지 실행되고 실패하는 일은 없도록 하는 것이다.
- 일관성(Consistency)은 트랜잭션이 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터베이스 상태로 유지하는 것을 의미한다. 무결성 제약이 모든 계좌는 잔고가 있어야 한다면 이를 위반하는 트랜잭션은 중단된다.
- 독립성(Isolation)은 트랜잭션을 수행 시 다른 트랜잭션의 연산 작업이 끼어들지 못하도록 보장하는 것을 의미한다. 이것은 트랜잭션 밖에 있는 어떤 연산도 중간 단계의 데이터를 볼 수 없음을 의미한다. 은행 관리자는 이체 작업을 하는 도중에 쿼리를 실행하더라도 특정 계좌간 이체하는 양 쪽을 볼 수 없다. 공식적으로 독립성은 트랜잭션 실행내역은 연속적이어야 함을 의미한다. 성능관련 이유로 인해 이 특성은 가장 유연성 있는 제약 조건이다. 자세한 내용은 관련 문서를 참조해야 한다.
- 지속성(Durability)은 성공적으로 수행된 트랜잭션은 영원히 반영되야 함을 의미한다. 시스템 문제, DB 일관성 체크 등을 하더라도 유지되야 함을 의미한다. 전형적으로 모드 트랜잭션은 로그로 남고 시스템 장애 발생 전 상태로 되도릴 수 있다. 트랜잭션은 로그에 모든 것이 저장된 후에만 commit 상태로 간주될 수 있다.
사내 운영툴 Referrer 제거하기.
ITWeb/서버관리 2010. 2. 8. 15:40사내 운영툴의 경우 외부로 URL 이 알려 지는걸 방지 하기 위해서 referrer 를 제거해야 하는 경우가 있습니다.
보통 referrer 는 html 헤더 정보에 포함이 되어서 전달이 되는데요.
아래와 같이 처리 하면 referrer 를 제거 해서 보낼 수 있습니다.
<html>
<head>
<meta http-equiv=refresh content=0; url=리다이렉트하고자하는URL>
</head>
</html>
<html>
<head>
<script type="text/javascript">
document.location = "리다이렉트하고자하는URL";
</script>
</head>
</html>
이렇게 보내면 referrer 가 남지 않습니다.
정확하게는 북마크접속이거나 직접접속 이런식으로 남습니다.
그리고 개발 하면서 한가지 조심해야 할 건 referrer 는 변조가 가능 하기 때문에 referrer 체크를 통한 보안 코드 삽입은 매우 위험한 발상 입니다.
참고 하셔요.. :)
[링크] MySQL 에서 SELECT ... IN () 크기 제한
ITWeb/서버관리 2009. 5. 13. 20:03IN
list is only limited by the max_allowed_packet
value.MySQL Start, Stop 명령
ITWeb/서버관리 2009. 4. 22. 23:49MySQL Start, Stop 명령
- Start : mysql/bin/mysqld_safe &
- Stop : mysql/bin/mysqladmin --user=userid --password=pwd shutdown
(root권한을 가진 user계정으로 실행)
가끔.. 급하게 MySQL 을 살리고 죽일때.. 명령어가 생각 안날때가 있죠 ^^;
그래서 기록해 본다는거.. ㅎㅎ
apache mod_expires 설정
ITWeb/서버관리 2009. 3. 31. 17:38
FileETag MTime Size
<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access plus 1 days"
ExpiresByType image/gif "access plus 1 days"
ExpiresByType image/png "access plus 1 days"
ExpiresByType image/jpeg "access plus 1 days"
ExpiresByType text/css "access plus 1 days"
ExpiresByType application/javascript "access plus 1 days"
ExpiresByType application/x-shockwave-flash "access plus 1 days"
</IfModule>
이미지 서버의 apache 설정 중 mod_expires 랑 FileETag 설정 이다.
기냥.. 1 days 로 설정을 해봤다..
각각의 퍼포먼스에 대해서는 구글링 하면 많이 나오니 참고들 하세요.
apache trace method
ITWeb/서버관리 2009. 1. 13. 15:38TraceEnable Off
이 옵션은 cross-site tracing 공격에 노출 되는 문제와 더불어 basic 인증의 패스워드를 가로챌 수 있는 취약점이 있습니다.
trace method 가 꼭 필요한 것이 아니면 apache conf 설정 시 off 로 설정 하고 사용하세요.
또 다른 방법으로는 mod_rewrite 로 방지가 가능 합니다.
RewriteEngine On
RewriteCond %{REQUEST_METHOD} ^TRACE
RewriteRule .* - [F]
이렇게 하시면.. 403 forbidden 메시지가 떨어 집니다..
꼭 테스트는 해보세요.. ^^*
실제 어떻게 사용 하냐구요..
telnet localhost 80
TRACE / HTTP/1.0
와 같이 사용 하지요..
google 에 trace method 로 검색 하시면.. 좋은 정보 많이 나옵니다.. :)
apache DirectoryIndex 란?
ITWeb/서버관리 2009. 1. 9. 15:42DirectoryIndex 지시어
설명: | 클라이언트가 디렉토리를 요청할때 찾아볼 자원 목록 |
---|---|
문법: | DirectoryIndex local-url [local-url] ... |
기본값: | DirectoryIndex index.html |
사용장소: | 주서버설정, 가상호스트, directory, .htaccess |
Override 옵션: | Indexes |
상태: | Base |
모듈: | mod_dir |
DirectoryIndex
지시어는 클라이언트가 디렉토리명 끝에 /를 붙여서 디렉토리의 index를 요청할때 찾아볼 자원 목록을 지정한다. Local-url은 요청한 디렉토리에 상대적인 문서의 (%로 인코딩된) URL이다. 보통은 디렉토리에 있는 파일명이다. 여러 URL을 지정할 수 있고, 이 경우 서버는 첫번째로 찾은 파일을 보낸다. 자원을 찾을 수 없고 Indexes
옵션을 설정하였다면 서버는 직접 디렉토리 목록을 만든다.
예제
DirectoryIndex index.html
이 경우 http://myserver/docs/
를 요청할때 http://myserver/docs/index.html
이 있으면 이를 보내고, 없다면 디렉토리 목록을 보낸다.
문서가 반드시 디렉토리에 상대적일 필요는 없다.
DirectoryIndex index.html index.txt /cgi-bin/index.pl
이 경우 디렉토리에 index.html
이나 index.txt
가 없으면 CGI 스크립트 /cgi-bin/index.pl
을 실행한다.
----------> 여기서 부터는 나의 해석.. ㅋ
그럼 이넘이랑..
RewirteRule ^/$ /index.html [R]
RewirteRule ^/$ /index.html [L]
이거랑 뭐가 다를까?
그리고 둘다 넣었을 경우 어떻게 응답을 할까?
우선 apache 에서는 RewriteRule 이 먼저 적용 된다.
이넘 들 실행 후에 암것도 없거나 그러면.. DirectoryIndex 를 찾는다..
어떤 경우에.. 파일 지정을 하지 않았거나 / 로 끝났을 경우에..
[R] 은.. access 로그를 보면 알겠지만.. request 두번 (302 한번, 200 한번)
[L] 은 access 로그에 처음 요청 URL 한번
그럼 이 [R], [L] 이건 또 뭐야??
아파치 문서에는 이렇게 되어 있다..
출처 : http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html
'redirect|R
[=code]' (force redirect)
Prefix Substitution with http://thishost[:thisport]/
(which makes the new URL a URI) to force a external redirection. If no code is given, a HTTP response of 302 (MOVED TEMPORARILY) will be returned. If you want to use other response codes in the range 300-400, simply specify the appropriate number or use one of the following symbolic names: temp
(default), permanent
, seeother
. Use this for rules to canonicalize the URL and return it to the client - to translate ``/~
'' into ``/u/
'', or to always append a slash to /u/
user, etc.
Note: When you use this flag, make sure that the substitution field is a valid URL! Otherwise, you will be redirecting to an invalid location. Remember that this flag on its own will only prepend http://thishost[:thisport]/
to the URL, and rewriting will continue. Usually, you will want to stop rewriting at this point, and redirect immediately. To stop rewriting, you should add the 'L' flag.
last|L
' (last rule)Stop the rewriting process here and don't apply any more rewrite rules. This corresponds to the Perl
last
command or the break
command in C. Use this flag to prevent the currently rewritten URL from being rewritten further by following rules. For example, use it to rewrite the root-path URL ('/
') to a real one, e.g., '/e/www/
'. 그렇군.. 뭔 말인지 알지?? ^^;; ㅋ
뭐 말 그대로 인고.. redirect 근데 이넘은.. URL 도 같이 변경이 되고..
last 는 기냥.. 여기서 그만.. 더 이상 하위 rule 은 실행을 하지 않는 다는 의미 이지요..
그럼 이넘은.. 왜 R 처럼 URL 이 바뀌지는 않는 걸까? 설명에 있잖아..
ㅎㅎ 그럼.. 이건 여기서 이제 그만.. ㅎㅎ