※ 모르면은 골병들기 쉽상이다. 알면은 강한 힘이 된다.
※ 아파치 다운로드 URL : http://httpd.apache.org/download.cgi
※ 버전 : 아파치 버전 2.2
1. 기존의 RPM패기지 제거
shell> rpm -qa | grep httpd
shell> rpm -e --nodeps httpd
2. apache 데몬 유저 추가 (www로 사용)
shell> useradd -m -r -u 80 -d /home/httpd -c "Apache Web Server" -s /bin/false www
3. apache 설치 준비 및 설정.
shell> tar xfz httpd-2.2.8.tar.gz -C /var/tmp
shell> cd /var/tmp/httpd-2.2.8
shell> vi config.layout (수정)
<Layout RedHat>
117라인의 mandir: ${prefix}/man => ${prefix}/share/man
118라인의 sysconfdir: /etc/httpd/conf => /etc/httpd
119라인의 datadir: /var/www => /home/httpd
120라인의 installbuilddir: ${datadir}/build => ${libexecdir}/build/
shell> vi server/mpm/prefork/prefork.c (수정)
#define DEFAULT_SERVER_LIMIT 256 => #define DEFAULT_SERVER_LIMIT 1280
shell> vi server/mpm/worker/worker.c
------------------------------------------------------------------------.
#define DEFAULT_SERVER_LIMIT 16 => #define DEFAULT_SERVER_LIMIT 20
------------------------------------------------------------------------
- 16 ( 16 * 16 = 1024 )
- 20 ( 20 * 64 = 1280 )
shell> CFLAGS="-O2 -march=i686 -funroll-loops -fPIC"; export CFLAGS
shell> ./configure \
--enable-layout=RedHat \
--prefix=/usr \
--exec-prefix=/usr \
--bindir=/usr/bin \
--sbindir=/usr/sbin \
--mandir=/usr/share/man \
--sysconfdir=/etc/httpd \
--includedir=/usr/include/apache \
--libexecdir=/usr/lib/apache \
--datadir=/home/httpd \
--localstatedir=/var \
--enable-access=shared \
--enable-actions=shared \
--enable-alias=shared \
--enable-auth=shared \
--enable-auth-dbm=shared \
--enable-auth-digest=shared \
--enable-autoindex=shared \
--enable-cern-meta=shared \
--enable-cgi=shared \
--enable-dav=shared \
--enable-dav-fs=shared \
--enable-dir=shared \
--enable-env=shared \
--enable-expires=shared \
--enable-file-cache=shared \
--enable-headers=shared \
--enable-include=shared \
--enable-log-config=shared \
--enable-mime=shared \
--enable-mime-magic=shared \
--enable-negotiation=shared \
--enable-rewrite=shared \
--enable-setenvif=shared \
--enable-speling=shared \
--enable-ssl=shared \
--enable-unique-id=shared \
--enable-usertrack=shared \
--enable-vhost-alias=shared \
--disable-auth-anon \
--disable-charset-lite \
--disable-disk-cache \
--disable-mem-cache \
--disable-cache \
--disable-deflate \
--disable-ext-filter \
--disable-case-filter \
--disable-case-filter-in \
--disable-example \
--disable-proxy \
--disable-proxy-connect \
--disable-proxy-ftp \
--disable-proxy-http \
--disable-asis \
--disable-info \
--disable-suexec \
--disable-cgid \
--disable-imap \
--enable-userdir=shared \
--with-z \
--with-ssl \
--with-mpm=worker
OR
shell> ./configure --enable-layout=RedHat --enable-rule=SHARED_CORE --enable-modules=so --enable-so
※ 위 configure 옵션 설명.
--enable-auth=shared : 인증 지원
--enable-auth-dbm=shared : db 인증 지원
--enable-auth-digest=shared : 인증 창 지원
--enable-autoindex=shared : index 파일 지원
--enable-cgi=shared : cgi를 지원
--enable-ssl=shared : ssl 지원(mod_ssl 포함)
--enable-vhost-alias=shared : 가상 호스트 지원
--disable-proxy : 아파치 프락시 비활성
--enable-status=shared : 아파치 상태 보는 기능
--enable-userdir=shared : 사용자 디렉토리 지원
--enable-rule=SHARED_CORE : Apache 컴파일시 rule을 지정한다. SHARED_CORE는 DSO(Dynamic Shared Objects, 동적공유객체)를 사용할 수 있는 형태로 Apache를 컴파일하도록 하는 일종의 규칙이다.
--enable-modules=so : mod_so(so_module)를 Apache에 컴파일하여 포함시킨다.(모듈의 정적 컴파일)
기본형은 --enable-modules=[MODULE-LIST]로 공백으로 구분한 [MODULE-LIST]에 나와있는 모듈들을 컴파일하여 포함한다.
--enable-so : Apache가 실행시 특별한 옵션없이 자동으로 동적공유객체(DSO-Dynamic Shared Objects)를 읽어들일 수 있도록 하기 위한 설정옵션
--with-mpm=worker : 멀티 프로세싱 방식
prefork 방식보다 worker방식이 뛰어남
perfork = 전통적인 아파치 프로세서 방식
worker = 쓰레드 방식(멀티 프로세싱 모듈 멀티 스레드, 멀티 프로세서 지원)
4. make 컴파일.
shell> make
shell> find /* > /root/install/httpd1
shell> make install
shell> strip /usr/sbin/httpd
shell> strip -R .comment /usr/lib/apache/*.so
shell> chmod 511 /usr/sbin/httpd
shell> chmod 700 /etc/httpd
shell> chmod 700 /var/log/httpd
shell> chmod 711 /home/httpd
shell> chmod 750 /usr/sbin/dbmmanage
shell> chmod 751 /home/httpd/cgi-bin
5. 시작 스크립트 생성.
shell> /usr/sbin/apachectl start
shell> /usr/sbin/apachectl restart
shell> /usr/sbin/apachectl stop
shell> cp /usr/sbin/apachectl /etc/init.d/httpd
shell> chmod 700 /etc/init.d/httpd
shell> ln -s /etc/rc.d/init.d/httpd /etc/rc.d/rc0.d/K90httpd
shell> ln -s /etc/rc.d/init.d/httpd /etc/rc.d/rc3.d/S89httpd
shell> ln -s /etc/rc.d/init.d/httpd /etc/rc.d/rc5.d/S89httpd
6. 로그 로테이터
shell> vi /etc/logrotate.d/httpd (로그 순환파일 생성)
/var/log/httpd/*log {
missingok
notifempty
sharedscripts
postrotate
/bin/kill -HUP `cat /var/run/httpd.pid 2>/dev/null` 2> /dev/null || true
endscript
}
shell> /etc/rc.d/init.d/httpd restart
7. 아파치 설치하면서 설치된 파일들 뽑아 내기.
shell> find /* > /root/install/httpd2
shell> diff /root/install/httpd1 /root/install/httpd2 > /root/install/httpd-diff
* 2.4버전 이상 설치시
- http://apr.apache.org/download.cgi 에서 APR과 APR Util 설치
- pcre-config 에러 발생시 yum install pcre-devel 설치
* openssl 과 openssl-devel을 업데이트 및 설치 할것.
'OS의 속삭임 > Linux의 외침' 카테고리의 다른 글
[OS][LINUX][tomcat] Tomcat 설치 (0) | 2013.06.04 |
---|---|
[OS][LINUX][java] JDK 설정 (0) | 2013.06.04 |
[OS][LINUX][java] JDK 설치 (0) | 2013.06.04 |
[OS][LINUX][apache] 웹서버 apache 설정 (0) | 2013.06.04 |
[OS][LINUX][관리]CPU와 메모리 확인. (0) | 2013.02.22 |