MY IT

CentOS APM 설치기

메롱씨티 배드맨 2012. 2. 25. 02:24

APM설치에 이렇게 시간이 많이 걸릴줄 몰랐다 ㅡㅡ;

어쨌든 삽질끝에 다행히 성공하여 다음을 위해 설치기 남김....




1. Apache 2.2.22 버전 설치

    Apache의 최신버전은 2.4 버전이지만, 이 버전으로 설치시 계속 오류가 발생하여 검색질을 해보니       
    2.4 버전의 소스에 버그가 있다고 하네요..
    그래서 2.2.22 버전으로 설치하였습니다.

     http://www.apache.org -> 에서 httpd-2.2.22.tar.gz 을 다운받아 설치합니다.

     apache 설치전 몇가지 라이브러리 파일을 미리 설치해야 합니다.
     XML 라이브러리 : yum -y install libxml2* 
     iconv 라이브러리 : yum -y install libiconv

     apache 가 1.3.x 버전 이후로 설치 방법이 바뀌었습니다.
     1.3.x 버전은 PHP module을 먼저 설치하여 module에 적재 후 설치하였으나 (static 방식) 
      2.x 버전은 httpd.conf에서 모듈을 불러오도록 합니다 (DSO 방식)

     일단 설치 디렉토리를 생성합니다.
     아파치 버전에 상관없이 동일한 Path를 가지도록 링크를 겁니다.

    $HOME/download/   -> apache, php 설치 파일들
    $HOME/apache-2.2.22 -> apache Home path
    $HOME/php-5.3.4  -> PHP Home path
    
    이후 링크 생성

    ln -s $HOME/apache-2.2.22 apache
    ln -s $HOME/php-5.3.4 php

    $HOME/apache -> apache 실경로로 가는 링크
    $HOME/php -> php 실경로로 가는 링크


     1.1. 아래와 같이 apache configure 및 설치합니다.
           ./configure  \
                --prefix=/home/kukto/apache \
                --enable-mods-shared=all \
                --enable-module=so

            > make
            > make install

      1.2. 아래와 같이 PHP configure 및 설치합니다.
            ./configure \
               --prefix=/home/kukto/php \
               --with-apxs2=/home/kukto/apache/bin/apxs \
               --with-config-file-path=/home/kukto/apache/config  \
               --disable-debug  \
               --enable-track-vars \
               --enable-sigchild \
               --with-language=korean \
               --with-charset=euc_kr \
               --with-freetype-dir=/usr \
               --with-png-dir=/usr \
               --with-xpm-dir=/usr \
               --enable-gd-native-ttf \
               --with-gdbm \
               --with-gettext \
               --with-gmp \
               --with-iconv \
               --with-jpeg-dir=/usr \
               --with-openssl \
               --with-pcre-regex=/usr \
               --with-zlib \
               --with-layout=GNU \
               --enable-exif \
               --enable-ftp \ 
               --enable-magic-quotes \
               --enable-sockets \
               --enable-sysvsem \
               --enable-sysvshm \
               --enable-sysvmsg \
               --with-kerberos \
               --enable-ucd-snmp-hack \
               --enable-shmop \
               --enable-calendar \
               --with-sqlite \
               --with-libxml-dir=/usr \
               --enable-xml \
               --with-mysql \
               --with-gd \
               --enable-dom \
               --enable-dba \
               --with-unixODBC \
               --enable-pdo \
               --enable-xmlreader \
               --enable-xmlwriter \
               --with-sqlite3 \
               --with-oracle=$ORACLE_HOME \
               --with-oci8=$ORACLE_HOME

            > make
            > make install

      1.3. apache web server configure
          apache web server에 PHP를 구동시키도록 설정합니다.

          > vi httd.conf
            - port 설정 : Listen 80  ( 80포트 생성 )
            - PHP 모듈 로드 설정
               AddType application/x-httpd-php .php .inc .phtml
               AddType application/x-httpd-php-source .phps
              
            - Dynamic Shared Object(DSO) Support 항목에서 다음을 주석 처리
              LoadModule auth_digest_module modules/mod_auth_digest.so
              LoadModule status_module modules/mod_status.so
              (apache 서버를 기동하고 페이지 접근시 퍼미션이나 Access 설정 문제가 아니라면 위 주석을 제거해 본다.)
              (퍼미션 에러가 없어지지 않는다면 DocumentRoot를 /var/www/html 로 변경해 본다)
      
      1.4. apache 구동
            > cd bin
            > ./apachectl start

      1.5. mysql 은 default로 설치한다.
            > yum -y install mysql*
      1.6 mysql root 비번 설정 ( phpMyAdmin 설치시 root 비번 반드시 필요 )
            > mysqladmin -u root passwd "password"
 
      1.7 phpMyAdmin 설치
           > yum -y install phpMyAdmin




2.PECL 확장 모듈 설치


   PHP Shell Script 에서 HTTPS(SSL)을 통과하기 위한 Http connection module을 사용하려고 pecl 확장 모듈중 http 모듈을 사용하였다.


   모듈 다운로드 http://pecl.php.net/package/pecl_http


   PHP Site에 정말 간력히 설명이 되어있다. http://www.php.net/manual/kr/install.pecl.phpize.php

   알고나면 매우 간단하지만 이 간략설명은 좀 성의가 없다.


   PECL 확장 모듈을 다운로드 받고 압축을 풀어서 소스 디렉토리로 이동한다.

   소스를 보면 configure 파일이 없다.

   이건 configure 파일을 생성해야 된다는 거다.

   먼저 설치된 PHP 디렉토리의 bin 디렉토리 하위에 phpize 를 PECL 소스 디렉토리에서 실행한다.


   그냥 절대 경로로 실행시키면 간단하다, 예를 들어 /usr/loca/php5.3.4/bin/phpize

   실행시켜면 configure 파일이 생성되고


    이후에


     ./configure

     make

     make install 로 설치 완료한다.


    이후 PHP.ini 파일에서 설정하라는데, 난 그냥 소스에서 export 해서 사용했다.


    if (!extension_loaded('http'))
    {
        if (!dl('http.so')) exit;
    }


    extension으로 설정하려면 http.so 파일을 php.ini 설정의 extension_dir 로 지정된 디렉토리로 copy 한다.

    php.ini에 extension=http.so 설정한다.


    이후 phpinfo() 함수로 확인한다.




Appendix #1 )

       1) apachectl start시 apr_sockaddr_info_get() filed 에러 발생시
           /etc/sysconfig/network에 있는 host 명을 /etc/hosts에도 동일하게 세팅해 준다.

          

           [root@PDR-WEB2 bin]# cat /etc/sysconfig/network
            NETWORKING=yes
            HOSTNAME=PDR-WEB2


           [root@PDR-WEB2 bin]# cat /etc/hosts
           127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
            ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
            XXX.54.71.XXX    PDR-WEB2