본문 바로가기

OS의 속삭임/Linux의 외침

[OS][LINUX][apache] 웹서버 apache설치


※ 모르면은 골병들기 쉽상이다. 알면은 강한 힘이 된다.

※ 아파치 다운로드 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을 업데이트 및 설치 할것.