1. 2013.01.17 RHEL 기반 5.8 64bit APM 소스 설치와 OCI8 연동

RHEL 기반 5.8 64bit APM 소스 설치와 OCI8 연동

벌써 몇번째 APM 설치 글을 올리는지 모르겠네요.

최신 버전은 워낙 에러가 많아서 삽질에 삽질을 거듭했습니다.


RHEL, CentOS, Oracle Linux Server 5.8 64 bit 버전에서 설치는 32bit 버전과 좀 차이가 있어서 여러가지 문제가 있습니다.

일단 APM이 32비트 기반이라서 말이죠.

아파치도 그렇고, php도 그렇고 최신버전들은 설치도 잘 안되고, 아직까지도 각종 애플리케이션에서 지원도 잘 안되고 말이죠.

가장 안정적인 버전으로 설치를 진행 하도록 하겠습니다.


설치 환경

OS - Oracle Linux Server 5.8 64bit

MySql - 5.5.28

Apache - 2.2.23

PHP - 5.2.8

Zend Optimizer - 3.3.3



APM설치를 위한 사전 요구사항

필수 패키지 설치
# yum -y install pcre-devel lua-devel libxml2-devel ncurses-devel zlib zlib-devel curl openssl openssl-devel libtermcap-devel libc-client-devel bison gcc g++ cpp gcc-c++ freetype freetype-devel freetype-utils gd gd-devel libjpeg libjpeg-devel libpng libpng-devel curl curl-devel flex php-mbstring libexif-devel cmake



Apache 설치를 위한 패키지 설치


소스설치 전에 APM관련 패키지가 yum 업데이트를 통해 설치가 되어 있을수도 있는데, yum erase 나 rpm -e 명령으로 설치된 패키지를 삭제 해줍니다.

apr, apr-util, mysql, httpd, php, php-common 삭제.


# cd /usr/local/src

# wget http://mirror.apache-kr.org//apr/apr-1.4.6.tar.gz
# tar xvfz apr-1.4.6.tar.gz
# cd apr-1.4.6
# ./configure --prefix=/usr/local/apr-1.4.6
# make && make install

# wget http://mirror.apache-kr.org//apr/apr-util-1.5.1.tar.gz
# tar xvfz apr-util-1.5.1.tar.gz
# cd apr-util-1.5.1
# ./configure --prefix=/usr/local/apr-util-1.5.1 --with-apr=/usr/local/apr-1.4.6
# make && make install



MySQL 설치 (cmake 설치)


MySQL 만 최신 버전을 사용하는 이유는 역시 5.5 버전이 5 버전대 보다 성능이 월등히 뛰어나기 때문입니다.


 - 설치 위치 : /usr/local/mysql-5.5.28
 - 데이타 위치 : /mysql/data

1. MySQL (http://www.mysql.com/downloads/mysql/)
  # cd /usr/local/src/
  # tar xvfz mysql-5.5.28.tar.gz


2. User 및 디렉토리 생성
  # adduser -M -s /bin/false mysql
  # mkdir -p /mysql/data /mysql/log
  # chown mysql.mysql data
  # chown mysql.mysql log


3. 소스 컴파일
  - 운영상의 편의성을 위해 설치 경로명에 버전을 같이 명기
  - 설치 옵션은 http://dev.mysql.com/doc/mysql-sourcebuild-excerpt/5.5/en/source-configuration-options.html 참조
  - CharSet 관련 설정은 http://dev.mysql.com/doc/refman/5.5/en/extended-show.html 참조

  # cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql-5.5.28 -DMYSQL_DATADIR=/mysql/data -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all
  # make && make install


만약 언어셋을 eucKR을 사용한다면, cmake 옵션에서 변경해줍니다.

-DDEFAULT_CHARSET=euckr -DDEFAULT_COLLATION=euckr_korean_ci


4. 심볼릭 링크 생성
  # ln -s /usr/local/mysql-5.5.28 /usr/local/mysql


5. 환경 설정
  1) 권한 설정
  # cd /usr/local
  # chown -R mysql.mysql ./mysql-5.5.28
  # chown -R mysql.mysql /mysql
  2) 스크립트 구동
  # cd /usr/local/mysql
  # ./scripts/mysql_install_db --user=mysql --datadir=/mysql/data


6. my.cnf
  1) 시스템 메모 크기에 따른 /usr/local/mysql/support-file 밑에 아래 설정 화일을 /etc/my.cnf 로 복사합니다.
  - 64M 이하 : my-small.cnf
  - 65M ~ 256M : my-medium.cnf
  - 512M : my-large.cnf
  - 1G ~ 2G : my-huge.cnf
 
  2) my.cnf를 시스템에 맞게 설정한다.

7. 구동
  1) MySQL server 구동
  # cp -av /usr/local/mysql-5.5.28/support-files/mysql.server /etc/init.d/mysqld
  # /etc/init.d/mysqld start

  2) 암호 설정
  # ./bin/mysqladmin -u root password <new-password> (<- 괄호없이 비번만 입력)
 
  3) 접속 테스트
  # mysql -p mysql
  mysql> 나오면 성공


8.  자동 구동 설정
  # vi /etc/rc.d/init.d/mysqld
  - 아래 부분 수정
  basedir=/usr/local/mysql
  datadir=/mysql/data
 

 # chkconfig --add mysqld



Apache 설치

1. Apache (http://httpd.apache.org/download.cgi)

 /usr/lib/libexpat.so 을 lib64에서 심볼릭 링크를 줍니다. 기존에 있는건 삭제. 이건 64bit에서만 설정해주는 거죠.
 

  # ln -s /lib64/libexpat.so.0.5.0 /usr/lib/libexpat.so


  # cd /usr/local/src/httpd-2.2.23

  # ./configure --prefix=/usr/local/httpd-2.2.23 --enable-so --with-mpm=prefork --enable-cache --with-apr=/usr/local/apr-1.4.6 --with-apr-util=/usr/local/apr-util-1.5.1 --enable-ssl --with-ssl=/usr --enable-rewrite --enable-lib64 --libdir=/usr/lib64
  # make && make install
  # ln -s /usr/local/httpd-2.2.23 /usr/local/apache2


   - 여기 사용된 옵션은 아파치 웹 서버의 성능을 높히기 위한 것으로써 아래 문서를 참고.
    http://httpd.apache.org/docs/2.4/mod/worker.html
    http://httpd.apache.org/docs/2.4/mod/mod_cache.html


 mpm 옵션에 prefork 와 worker 를 선택할수가 있는데, worker 는 멀티 CPU에서 성능이 좋고, prefork는 싱글 CPU에서 성능이 좋습니다.

 각각 장단점이 있는데 그건 나중에...


2. mod_url : 1.6.2.6 설치 (최신 버전은 컴파일 과정에서 에러남)
  # wget http://caos.kldp.net/frs/download.php/6015/mod_url-apache2-1.6.2.6.tar.bz2
  # bzip2 -d mod_url-apache2-1.6.2.6.tar.bz2
  # tar -xvf mod_url-apache2-1.6.2.6.tar
  # /usr/local/httpd-2.2.23/bin/apxs -aic mod_url.c
  그러면 아파치 모듈 디렉토리 (/usr/local/httpd-2.2.23/modules)에 설치됩니다. (755 권한)
  아파치 설정 파일 httpd.conf에 아래 부분이 이미 추가되어 있습니다.


  LoadModule redurl_module        modules/mod_url.so
  그 하단에 추가
 
  <IfModule mod_url.c>
          CheckURL On
  </IfModule>



PHP 설치

PHP설치에 앞서 라이브러리를 인식시키는 작업을 합니다.

  # echo "/lib" >> /etc/ld.so.conf
  # echo "/lib64" >> /etc/ld.so.conf
  # echo "/lib" >> /etc/ld.so.conf
  # echo "/usr/local/mysql/lib/mysql" >> /etc/ld.so.conf
  # echo "/usr/local/apache/modules" >> /etc/ld.so.conf
  # echo "/usr/lib64" >> /etc/ld.so.conf
  # echo "/usr/local/lib64" >> /etc/ld.so.conf
  # ldconfig

php설치시에 iconv에러가 발생되기 때문에 iconv만 따로 컴파일 작업을 진행해줘야 하죠.

  # wget mirror.koreaidc.com/library/libiconv-1.13.tar.gz
  # tar xvfz libiconv-1.13.tar.gz
  # cd libiconv-1.13
  # ./configure && make && make install

심볼릭 링크
  # ln -s /usr/local/lib/libiconv.so.2 /usr/lib/libiconv.so.2 (32비트 일때)
  # ln -s /usr/local/lib/libiconv.so.2 /usr/lib64/libiconv.so.2 (64비트 일때)


PHP 다운로드 및 설치

    # tar xvfz php-5.2.8.tar.gz
  # cd php-5.2.8
  # ./configure --prefix=/usr/local/php-5.2.8 --with-mysql=/usr/local/mysql-5.5.28 --with-apxs2=/usr/local/apache2/bin/apxs --with-config-file-path=/usr/local/apache2/conf --with-png-dir=/usr/lib64 --with-zlib-dir=/usr/lib64 --with-gdbm=/usr/lib64 --with-iconv=/usr/local --with-freetype-dir=/usr --with-jpeg-dir=/usr --with-gettext --with-imap --with-imap-ssl --with-kerberos --with-curl --with-zlib --with-gd --enable-exif --enable-wddx --enable-magic-quotes --enable-calendar --enable-sockets --enable-ftp --enable-bcmath --enable-mbstring --enable-mbregex --enable-sigchild --enable-mod-charset --with-oci8=$ORACLE_HOME
  # make
  # make install


--with-oci8=$ORACLE_HOME 

  : 오라클과 PHP를 연동하는 옵션인데, root에서 export로 오라클 홈을 지정해주지 않았다면, 오라클이 설치된 경로를 수동으로 지정 해주거나 (ex> /oracle/base/product/11g) 또는 오라클 엔진이 없을 경우는 instance client를 설치해서 설치한 경로를 지정해 줘도 됩니다.


  # cp -a php.ini-recommended /usr/local/apache2/conf/php.ini
  # perl -pi -e "s/register_globals = Off/register_globals = On/g" /usr/local/apache2/conf/php.ini
  # perl -pi -e "s/allow_url_fopen = On/allow_url_fopen = Off/g" /usr/local/apache2/conf/php.ini

  # ln -s /usr/local/php /usr/local/php-5.2.8



ZendOptimizer 설치 (php 가속화)


 Zend 의 경우 3.3.9 버전이 64bit 에서 잘 로딩이 안되는 경우도 많고, 그냥 3.3.3 버전을 설치 합니다.

압축을 풀면 install.sh 스크립트가 있는데 실행 시켜서 경로만 지정해주고 next 하면 알아서 설치가 됩니다.

설치후에 자동으로 아파치를 재구동 해주고, 설치 확인 방법은 아래와 같습니다.


# /usr/local/php/bin/php -v


이걸로 APM 설치는 끝!