* Apache 컴파일

   1. tar zxvf httpd-2.2.5
   2. ./configure --prefix=/apache2 --enable-so --enable-proxy-ajp --enable-proxy-http --enable-rewrite --enable-speling --enable-usertrack --enable-deflate --enable-ssl --enable-cache --enable-disk-cache --enable-expires --enable-file-cache --enable-headers --enable-mem-cache --enable-mime-magic --enable-proxy --enable-mods-shared=all
   3. make
   4. make install

apache 서버 시작 : apachectl start (apachectl stop)

AJP proxy 모듈 확인
apache폴더에 conf/httpd.conf

LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
LoadModule rewrite_module modules/mod_rewrite.so

체크 (없다면 log (모듈 폴더에 있는지도 확인해보고)

* httpd.conf

#Virtual hosts
Include conf/extra/httpd-vhosts.conf 활성화

<Directory />
   Options FollowSymLinks
   AllowOverride None
   Order deny,allow
   Allow from all (추가)
</Directory>

* conf/extra/httpd-vhosts.conf 열어서

<VirtualHost *:80>
DocumentRoot "$WEBROOT"
ServerName www.test.com

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} .(htm|html|xhtml|jpg|gif|png)
RewriteRule (.*) - [L]
RewriteRule (.*) ajp://localhost:8009$1 [P]   <<이 부분은 AJP 포트임
</VirtualHost>

-> htm, html, xhtml, jpg, gif, png 를 제외하고는 다 tomcat으로 넘김.

시작 순서는 아파치 -> 톰캣
중지 순서는 톰캣 -> 아파치

추가 httpd.conf

저작자 표시 비영리 변경 금지
신고
Posted by 신머루군
해당글은 수정중입니다 (2010/12/14)
-> 해당글을 수정을 할려고 했었으나, 수정에 대한 이유가 마땅치가 않았습니다.
2010-12-12 부터 확인을 시작하여 확인을 해보니, mod_jk방식은 2.2 버전에서는 까탈스럽고 설정하기가 어렵다는 이유로 회피가 되어지는것 같습니다.

아래의 방법도 정상적으로 연동이 되어졌음을 확인을 하였습니다.

===============아파치 컴파일===============
1. apache를 다운받는다 적당히 최신버전을 받아서 컴파일을 한다
2. 컴파일 옵션은 --prefix=/opt/httpd 만 주었다
===============커넥터 컴파일===============
3. tomcat-connecter를 다운받았다 1.2.30 이 최신이더라
4. 컴파일을 했다. 옵션은 apxs위치만 지정하였다.
5.  옵션은 --with-apxs=/opt/httpd/apxs 이고 압축 풀은 폴더가 아니라, native 해야한다
===============config 수정===============
6. 준비는 끝났다 수정해보자
7. httpd.conf에 아래 내용을 추가 했다. (위치는 /opt/httpd/conf)

<IfModule mod_jk.c>
  JkWorkersFile /opt/httpd/conf/workers.properties
  JkLogFile             logs/mod_jk.log
  JkLogLevel    info
  JkMountFile   /opt/httpd/conf/uriworkermap.properties
</IfModule>

8. workers.properties 파일을 만들었다 (없다. 그러니 만들자)
worker.list=mailWorker
worker.mailWorker.port=81
worker.mailWorker.host=127.0.0.1
worker.mailWorker.type=ajp13
worker.mailWorker.lbfactor=1

9. uriworkermap.properties 파일을 만들었다 (없다. 그러니 만들자)
/*.jsp=mailWorker
/*.do=mailWorker

10. 그 후 server.xml을 수정하였다. (한 라인 추가 하였다)
  <Listener className="org.apache.jk.config.ApacheConfig" modJk="/opt/TerraceTims/web/httpd/modules/mod_jk.so" />

11. 포트만 잘 확인해서 올렸다...잘 올라 오더라

===============번외편 tomcat 설치===============
12. java을 설치하자 (JDK 5이상이여야 한다) - rpm도 상관없다,걍 압축만 풀자
13. tomcat을 설치하자 (걍 압축만 풀자)
14. JAVA 환경을 잡자
LANG=ko_KR.euckr; export LANG
JAVA_HOME="/usr/bin/java"; export JAVA_HOME
JAVA_OPTS="-server  -Xms128m -Xmx128m"; export JAVA_OPTS
15. 톰캣 풀은 폴더의 bin으로 이동후 startup.sh 실행하면 끝난다

저작자 표시 비영리 변경 금지
신고
Posted by 신머루군

아래 apache configure의 수많은 옵션들을 볼수가 있었다. 하지만 이 옵션들중 대부분은 httpd.conf 파일에서 수정이 가능합니다.

대부분은 INSTALL문서에 나온 내용만가지고도 충분한 기능을 발휘할수 있기에 그다지 옵션이 필요로 하지는 않지만, 혹시 필요한 부분은 아래 내용을 참조해주시면 될것 같습니다.


일반적인 문법
일반적으로 다음 문법을 사용하여 기능을 포함하고 뺀다:

--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를 지정한다. 기본값은 사용하는 시스템의 기본 설정과 같다.

환경변수
configure의 선택을 무시하거나 관례와 다른 이름이나 위치에 있는 라이브러리와 프로그램을 찾도록 도와주는 유용한 환경변수들이 있다.

CC
컴파일에 사용할 C 컴파일러 명령어를 지정한다.
CFLAGS
컴파일때 사용하길 바라는 C 컴파일러 옵션을 지정한다.
CPP
사용할 C 선처리기 명령어를 지정한다.
CPPFLAGS
C/C++ 선처리기 옵션. 예를 들어, 헤더파일이 관례와 달리 includedir 디렉토리에 있다면 -Iincludedir을 사용한다.
LDFLAGS
링커 옵션. 예를 들어, 라이브러리가 관례와 달리 libdir 디렉토리에 있다면 -Llibdir을 사용한다.

본문의 자료는 한국 아파치 사이트에서 발취한 내용이 포함되어있으니 참조하시길 바라겠습니다.

저작자 표시 비영리 변경 금지
신고
Posted by 신머루군

apache 설치 및 연동 과정

apache (httpd)와 같은경우는 80포트를 listen하여 사용자에게 가장 기본적인 html문서를 보여주는 웹 서버이다.
하지만 어떤 바보 관리자도 html뿐만 아니라 php를 대표적으로 jsp, 각종 페이지들을 연동하여 사용한다.
어떤 관리자는 보안을 위해서 SSL을 적용을 한다거나...

물론 apache말고도 다른 웹서버도 있지만, 타 서버보다 월등이 앞서는 수치를 보여주고 있다.

.............잡설은 여기까지........(잡설쓰는것도 은근히 일이다)

=============================================================================================
apache URL http://httpd.apache.org
블로그에 글을 올리는 순간 httpd의 Version : 2.2.13
설치 및 테스트 버전 : 당연히 최신으로.

대충 미러서버를 선택해서 다운을 받자...나는 불친절하게도 다운받을수 있는곳까지 url은 적어주지 않겠다...

[root@kki apache]# ls -al
-rw-rw-r--  1 kki  kki  6897450 2009-08-12 08:09 httpd-2.2.13.tar.gz
tar.gz파일이다....
tar zxvf httpd-2.2.13.tar.gz을 하면 tar.gz파일의 압축이 다 풀린다..

[root@kki httpd-2.2.13]# ls
ABOUT_APACHE    LICENSE           ROADMAP           configure.in  os
Apache.dsw      Makefile.in       VERSIONING        docs          server
BuildAll.dsp    Makefile.win      acinclude.m4      emacs-style   srclib
BuildBin.dsp    NOTICE            apachenw.mcp.zip  httpd.dsp     support
CHANGES         NWGNUmakefile     build             httpd.spec    test
INSTALL         README            buildconf         include
InstallBin.dsp  README-win32.txt  config.layout     libhttpd.dsp
LAYOUT          README.platforms  configure         modules
[root@kki httpd-2.2.13]#

일단 해야할 일...
vi INSTALL (install문서를 읽어본다....예전에 비해서 많이 불친절해진 INSTALL 문서 파일..ㄱ-)

초간단 설치 메뉴얼이다
./configure --prefix=경로명
make
make install

이것으로써 아파치 설치를 끝낸다...............
라고 말하면 아마도 (이 변태는 뭔가?)라는 생각이 들테지.
=============================================================================================
configure 옵션

Usage: ./configure [OPTION]... [VAR=VALUE]...

To assign environment variables (e.g., CC, CFLAGS...), specify them as
VAR=VALUE.  See below for descriptions of some of the useful variables.

Defaults for the options are specified in brackets.

Configuration:
  -h, --help              display this help and exit
      --help=short        display options specific to this package
      --help=recursive    display the short help of all the included packages
  -V, --version           display version information and exit
  -q, --quiet, --silent   do not print `checking...' messages
      --cache-file=FILE   cache test results in FILE [disabled]
  -C, --config-cache      alias for `--cache-file=config.cache'
  -n, --no-create         do not create output files
      --srcdir=DIR        find the sources in DIR [configure dir or `..']

Installation directories:
  --prefix=PREFIX         install architecture-independent files in PREFIX
                          [/usr/local/apache2]
  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
                          [PREFIX]

By default, `make install' will install all the files in
`/usr/local/apache2/bin', `/usr/local/apache2/lib' etc.  You can specify
an installation prefix other than `/usr/local/apache2' using `--prefix',
for instance `--prefix=$HOME'.

For better control, use the options below.

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-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-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

Some influential environment variables:
  CC          C compiler command
  CFLAGS      C compiler flags
  LDFLAGS     linker flags, e.g. -L<lib dir> if you have libraries in a
              nonstandard directory <lib dir>
  LIBS        libraries to pass to the linker, e.g. -l<library>
  CPPFLAGS    C/C++/Objective C preprocessor flags, e.g. -I<include dir> if
              you have headers in a nonstandard directory <include dir>
  CPP         C preprocessor

급 두통이 오기 시작하는 configure option;;;;;
중요한것과 그렇지 않은것을 빼놓고 확인을 해야하지만 일반적으로 많이 설치하는 APM (apache + php+mysql)을 연동하는것으로 시작을 해야 할 것 같다...

다음글에서 apache configure부분을 살펴보도록.......하겠다.
저작자 표시 비영리 변경 금지
신고
Posted by 신머루군

자자 속성으로 갑니다..이번엔 apache설치를 해보겠습니다

현재 나와있는 버전 apache-2.2.0을 기준으로 하겠습니다.

MS windows에는 IIS가 있고 리눅스에는 apache가 있죠..하지만 대세는 apache입니다..최근 웹 서버 추의를 보면 apache가 앞서나가고 있는것을 쉽게 볼수 있습니다. 그만큼 인증 받았다고 말할수 있는 웹 서버이겠죠? 요즘은 windows에서도 apm을 설치하여 사용하시는 분들을 많이 보았습니다.


http://apache.org 사이트를 방문하시면 다운로드에 한국 사이트가 미러링이 되어있습니다.

미러링 사이트는 폴더처럼 보이는데 httpd폴더에 보시면 됩니당


일단 압축을 다운받은 파일을 압축을 풀어야겠죠?

tar zxvf httpd-2.2.0.tar.gz


아파치는 일반 형식과 DSO형식으로 세팅이 되어지는데요 DSO방식은 퍼포먼스에서 일반방식보다 조금은 떨어지는것을 발견할수 있습니다. 하지만 DSO방식을 많이 사용하는것이 현실입니다. 추후 모듈관리나 이것저것 한다면 DSO방식을 추천해드리고 싶습니다.


Quick Install Guide

shell>./configure --prefix=/usr/local/apache

shell>make && make install


-_-간단합니다 아무것도 안올리고 저대로만 실행해도 apache가 구동된것을 알수가 있습니다. 하지만 php모듈에 rewrite모듈 zend모듈 이것저것 올리고 mysql이나 db2등등을 연동할려면 저것만으로는 수월하게 작업할수 없을것입니다. 그러기 위해서 configure의 옵션을 한번쯤 살펴봐야 합니다


configure options

--prefix=PREFIX 설치되어질 폴더를 세팅합니다

--exec-prefix=EPREFIX exec에 관한 폴더세팅입니다. (exec에 의존해하는것입니다)


그리고 몇몇 가지 세팅파일이라던지에 관련된 config옵션이 있습니다만 이하것들은 configure --help로 확인하셔도 충분할듯 싶어 여기에는 안쓰겠습니다.

 

*****************************************************************************************

일반적인 문법
일반적으로 다음 문법을 사용하여 기능을 포함하고 뺀다:

--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를 지정한다. 기본값은 사용하는 시스템의 기본 설정과 같다.

환경변수
configure의 선택을 무시하거나 관례와 다른 이름이나 위치에 있는 라이브러리와 프로그램을 찾도록 도와주는 유용한 환경변수들이 있다.

CC
컴파일에 사용할 C 컴파일러 명령어를 지정한다.
CFLAGS
컴파일때 사용하길 바라는 C 컴파일러 옵션을 지정한다.
CPP
사용할 C 선처리기 명령어를 지정한다.
CPPFLAGS
C/C++ 선처리기 옵션. 예를 들어, 헤더파일이 관례와 달리 includedir 디렉토리에 있다면 -Iincludedir을 사용한다.
LDFLAGS
링커 옵션. 예를 들어, 라이브러리가 관례와 달리 libdir 디렉토리에 있다면 -Llibdir을 사용한다.

 

본문의 자료는 한국 아파치 사이트에서 발취한 내용이 포함되어있으니 참조하시길 바라겠습니다.

*****************************************************************************************

후...-_- 정말 깁니다...일일히 필요한 옵션을 다 넣을려다가 검색의 생활화가 생각나 검색해보니 아파치 그룹에서 설명해놓은것을 찾을수 있었습니다...(감사합니다)


./configure --prefix=/usr/local/apache --enable-MODULE=shared --enable-MODULE=static --enable-auth-ldap --enable-ldap --enable-mime-magic --enable-isapi --enable-rewrite --enable-ssl --with-ssl=DIR --enable-so


그래서 완성된 configure입니다. 많이 깁니다..-ㅠ-; DSO방식으로 컴파일하는것이고, 퍼포먼스가 떨어지는데 왜 DSO방식으로 하느냐? 라고 물어보시는분이 있을겁니다. DSO방식이 아니면 모듈 처리가 난감해집니다.. 그래서 대부분은 DSO방식을 채택하는것으로 알고 있습니다. 그리고 아직 글은 안올렸지만 php+zend+jsp까지 설치할려면 모듈을 올려야 하기때문에...더구나 gd lib나 ssl라이브러리역시 그렇구요 libpng/jpeg 등등등등~ 너무 많습니다..-_-; 올려야 할건 많고 아직 갈길은 험합니다. 그래도 열심히 가봅시다..-_-; 그래서 배워야지요.


httpd.conf파일에 관한 설명은 php+zend설치가 끝난후 하겠습니다. 모듈추가를 해야하고 중간에 라이블러리도 설치해야하는 과정이 남아있어서요...ㅡ 이렇게 보니 apm세팅하는 방법이 되어버렸군요..참고로 제 개인적은 세팅방법입니다. 다른분들은 입맛에 맞게 세팅하심이 좋을듯 싶습니다.

신고
Posted by 신머루군

제가 포스팅 하는글중에서 요약드리면 LAMP 부분중 마지막 부분인 php설치입니다.

물론 포스팅은 php에서 끝나진 않습니다..-_-;;; 그냥 일반적인 리눅스 서버를 돌리시는분들은 여기가 종착역이 되지 않을까 싶어서 끝...이라는 말을쓴것입니당.


앞으로의 갈길은 samba/jsp/named(bind)/admin tools/ssh(이것은 리눅스 설치시 기본으로 설치가 되어집니다)/telnet/sendmail 이정도가 끝일듯 싶습니다.


다루는것은 서버설치 및 세팅정도까지만 다룰것이고, 나머지는 기타 노하우라고 불릴수 있는 글들은 저도 일일이 타이핑하기가 귀찮은지라..(응?) 검색의 활용화가 좋겠습니다...쿠헬헬..

그리고 지금 아파치의 세팅이 빠져있는데 이것은 일부러 빼먹은것입니다. php세팅하는 방법 포스팅후 아파치세팅에 관해서 포스팅 하겠습니다.

------------------------------------------------------------------------------------

*본 작업을 진행하시기전에 포스팅된 라이브러리를 다운 받으시고 설치해야만 작업이 가능합니다

요즘 많이 쓰이고 있는 제로보드를 보면 php로 확장자가 끝나는것을 알수가 있습니다. 그만큼 스크립트 언어중에서 많이 쓰이는것이 php임을 알수가 있죠..왠만한 사이트들은 php로 작성되어져 있다고 보셔도 괜찮을것같습니다. 물론 php뿐만 아니라 asp로 작성된것들도 있고 jsp도 있습니다.


제가 포스팅한 아파치 설치부분에 보시면 --enable-so 부분이 있을것입니다. 이것이 php에 관련된 옵션입니다. 물론 이것만 있는건 아니겠지만요..


일단 http://www.php.net 에 접속하셔서 php최신버전을 다운로드 받습니다.


현재 아파치 데몬이 떠 있는 상태라면 아파치 서비스를 중단 시켜놓고 작업을 시작해야 합니다.


tar zxvf php-5.2.1.tar.gz

(버전이 맞나 모르겠네요..저도 다운 받아서 보긴 해는데)

일단 기본적으로 세팅을 하실때 자신이 설치한 아파치 버전을 알고 있으셔야 합니다. (제가 포스팅한 아파치는 2.x버전입니다) 그리고 설치한 데이터베이스인 mysql을 연동하는 방법입니다.


shell>./configure --with-apxs2=/apache2 PREFIX --with-mysql

shell>make && make install

shell>cp php.ini-dist /usr/local/lib/php.ini (아차치 conf폴더에 복사해 넣는것입니다)


입니다...그리고 지금 configure를 대충 살펴 보았습니다..-_- 할것이 너무 많은 관계로 직접 번역하지 않은 help파일을 따로 올리겠습니다. ( http://cic.seowon.ac.kr/~s9909/phelp )


(블로그에 직접 올릴려고 하니 <CR>이 엔터로 인식되지 않는건지 아니면 알지못하는 또 다른 이유가 있는건지 글이 깨져 링크와 파일로 따로 올리겠습니다..(__ )


shell>./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs --with-mod_charset --enable-libgcc --with-libxml-dir=/usr/local/libxml --with-openssl=/usr/loca/openssl --with-zlib=/usr/local/zlib --with-curl=/usr/local/curl --with-gd=/usr/local/gd --with-jpeg-dir=/usr/local/lib --with-png-dir=/usr/local/lib --with-ttf=/usr/local/lib --with-freetype-dir=/usr/local/lib --with-imap=/usr/local/lib --with-imap-ssl=/usr/local/lib --with-ldap=/usr/local/lib  --enable-mbstring --with-mcrypt=/usr/local/lib --with-mssql=/usr/local/mysql --with-zlib-dir=/usr/local/mysql --with-mm=/usr/local/mm --with-libxml-dir=/usr/local/libxml --enable-soap



자 그래서 새롭게 완성된 ./configure입니다...정말 깁니다..-_-;php에는 지원하는종류도 많은 관계로 솔직히 직접 configure help 문서를 보시고 자신에게 필요한 옵션만 주는 편이 좋을것이라고 생각이 되어집니다..여기까지 따라오셨다면 LAMP 구축을 완성한 것을 보실수 있을꺼라 믿어 의심치 않습니다...위에 부분에서 중간중간 오타가 발생될수 있습니다. 저도 일하느랴, 문서보랴 바쁘거든요..-(무책임...)


대부분의 분들은 여기쯤이 종착역이 되지 않을까 싶어서 끝...이라는 말을쓴것입니당.

(아직 라이블러리관련과 아파치 설정 부분의 포스팅이 되어지지 않았습니다. 포스팅을 더욱 주의 깊게 봐주시길 바라겠습니다)


하지만 시스템 엔지니어분들은 여기가 종착역이 아닙니다..-_-; 똑같은 작업을 몇 수십번 반복을 하셔야 합니다. (솔직히 수백번이 될수도 있습니다. 지금이라도 늦지 않으셨으니 시스템 엔지니어를 지원하시려는 분들은 어서 컴퓨터 2대를 장만 하셔서 느긋한 마음으로 하셨으면 합니다)

신고
Posted by 신머루군
TAG Apache, Lamp, PHP

티스토리 툴바