2009. 4. 24. 19:17

웹서버 설치 - apache , openssl , zlib

일명 APM (Apache) , (MySQL),(PHP)는 웹서버의 대명사이다. 많은 웹사이트가 이 세가지의 프로그램으로 이루어진다고 해도 과언이 아니다.

OPENSSL

웹서버에 SSL를 설치할 경우 SSL이 적용된 전자문서는 별도의 암호화 과정을 거쳐 상대방에게 전달되므로 클라이언트와 서버외에는 그 내용을 해독할 수 없습니다. 따라서 웹서버와 클라이언트간의 정보는 둘 외에는 알수가 없습니다. 그러나 SSL기술은 하나의 서버에 하나의 도메인만 기술이 적용되기 때문에 버추얼호스트에는 적용이 되지않습니다.

[root@localhost app]# cp /home/sunnyfm/open* /app/
[root@localhost app]# pwd
/app
[root@localhost app]# tar zxvf openssl-*
[root@localhost app]# cd openssl-0.9.8i
[root@localhost openssl-0.9.8i]# ./config --prefix=/usrl/local/openssl
[root@localhost openssl-0.9.8i]# make

------- 중략 -------

make[2]: Leaving directory `/app/openssl-0.9.8i/test'
make[1]: Leaving directory `/app/openssl-0.9.8i/test'
making all in tools...
make[1]: Entering directory `/app/openssl-0.9.8i/tools'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/app/openssl-0.9.8i/tools'     --> 성공

[root@localhost openssl-0.9.8i]# make install

------- 중략 -------

cp openssl.pc /usrl/local/openssl/lib/pkgconfig
chmod 644 /usrl/local/openssl/lib/pkgconfig/openssl.pc   --> 성공
[root@localhost openssl-0.9.8i]# ls /usrl/local/openssl
bin  include  lib  ssl

zlib

통신상에 이루어지는 데이타 압축 프로그래밍 함수기술입니다.

[root@localhost app]# cp /home/sunnyfm/z* /app/
[root@localhost app]# ls
-                               httpd-2.2.10         openssl-0.9.8i          zlib-1.2.3.tar.tar
hanyang-ttf-2.0-2hs.noarch.rpm  httpd-2.2.10.tar.gz  openssl-0.9.8i.tar.tar
[root@localhost app]# tar zxvf zlib*

[root@localhost app]# cd zlib-1.2.3
[root@localhost zlib-1.2.3]#./configure --prefix=/usrl/local/zlib

Checking for gcc...
Building static library libz.a version 1.2.3 with gcc.
Checking for unistd.h... Yes.
Checking whether to use vs[n]printf() or s[n]printf()... using vs[n]printf()
Checking for vsnprintf() in stdio.h... Yes.
Checking for return value of vsnprintf()... Yes.
Checking for errno.h... Yes.
Checking for mmap support... Yes.
[root@localhost zlib-1.2.3]#make

--------- 중략 ------------------------

gcc -O3 -DUSE_MMAP -o example example.o -L. libz.a
gcc -O3 -DUSE_MMAP   -c -o minigzip.o minigzip.c
gcc -O3 -DUSE_MMAP -o minigzip minigzip.o -L. libz.a

[root@localhost zlib-1.2.3]# mkdir -p "/usrl/local/zlinb/include" "/usrl/local/zlib/lib"
[root@localhost zlib-1.2.3]# make install
cp zlib.h zconf.h /usrl/local/zlib/include
chmod 644 /usrl/local/zlib/include/zlib.h /usrl/local/zlib/include/zconf.h
cp libz.a /usrl/local/zlib/lib
cd /usrl/local/zlib/lib; chmod 755 libz.a
cd /usrl/local/zlib/lib; if test -f libz.so.1.2.3; then \
          rm -f libz.so libz.so.1; \
          ln -s libz.so.1.2.3 libz.so; \
          ln -s libz.so.1.2.3 libz.so.1; \
          (ldconfig || true)  >/dev/null 2>&1; \
        fi
cp zlib.3 /usrl/local/zlib/share/man/man3
chmod 644 /usrl/local/zlib/share/man/man3/zlib.3
[root@localhost zlib-1.2.3]# ls /usrl/local/zlib
include  lib  share
[root@localhost zlib-1.2.3]#

apache

아파치는 원래 a patch였다고 한다. 그런데 발음하다보니 apache가 되서 그냥 apache프로젝트로 나아간다고 아파치에서도 설명한다고 한다. 그건 중요하지 않고... 많은 웹서버에서 이 아파치로 웹서버를 운영하고 있다. 각설하고 한번 설치해보자..

cp,mv명령으로 옮기고 나서 압축을 푼다. 압축은 여러가지가 존재하는데 tar형식이 가장 일반화되어있다.

[root@localhost app]# tar -xvf httpd-2.2.10.tar.gz

압축이 풀린다.

[root@localhost  app]# ls
-  hanyang-ttf-2.0-2hs.noarch.rpm  httpd-2.2.10  httpd-2.2.10.tar.gz
[root@localhost app]# cd httpd-2.2.10
[root@localhost httpd-2.2.10]# ls
ABOUT_APACHE  INSTALL         Makefile.win      ROADMAP           buildconf      emacs-style   modules  test
Apache.dsw    InstallBin.dsp  NOTICE            VERSIONING        config.layout  httpd.dsp     os
BuildAll.dsp  LAYOUT          NWGNUmakefile     acinclude.m4      configure      httpd.spec    server
BuildBin.dsp  LICENSE         README            apachenw.mcp.zip  configure.in   include       srclib
CHANGES       Makefile.in     README.platforms  build             docs           libhttpd.dsp  support
[root@localhost app]#

압축이 풀리면 이제 컴파일에 들어가자..

[root@localhost httpd-2.2.10]# ./configure --prefix=/usrl/local/httpd --with-mpm=prefork --enable-ssl --with-ssl=/usrl/local/openssl --enable-deflate --with-z=/usrl/local/zlib --enable-so --enable-mods-shared=all
--------- 중략 --------------------

config.status: creating build/rules.mk
config.status: creating build/pkg/pkginfo
config.status: creating build/config_vars.sh
config.status: creating include/ap_config_auto.h
config.status: executing default commands  <-- 성공
[root@localhost httpd-2.2.10]# make

--------- 중략 --------------------
make[4]: Leaving directory `/app/httpd-2.2.10/modules/mappers'
make[3]: Leaving directory `/app/httpd-2.2.10/modules/mappers'
make[2]: Leaving directory `/app/httpd-2.2.10/modules'
make[2]: Entering directory `/app/httpd-2.2.10/support'
make[2]: Leaving directory `/app/httpd-2.2.10/support'

make[1]: Leaving directory `/app/httpd-2.2.10' <-- 성공

[root@localhost httpd-2.2.10]# make install

Installing header files
Installing build system files
Installing man pages and online manual
mkdir /usrl/local/httpd/man
mkdir /usrl/local/httpd/man/man1
mkdir /usrl/local/httpd/man/man8
mkdir /usrl/local/httpd/manual
make[1]: Leaving directory `/app/httpd-2.2.10'
[root@localhost httpd-2.2.10]# ls /usrl/local/httpd
bin  build  cgi-bin  conf  error  htdocs  icons  include  lib  logs  man  manual  modules
[root@localhost httpd-2.2.10]#

OpenSSL , zlib , Apache까지 모두 설치가 정상적으로 끝났다.