2012년 2월 8일 수요일

64비트 centos APM설치

환경 : CENTOS 5.X  (64BIT)

설치 내용

설치 내용
APACHE 2.2 ( mod_url + mod_security )
PHP 5.2.5
MYSQL 4.0.20 (euckr)

MYSQL은 상황에 따라 5.X로 설치해도 무관하다

이 APM을 설치하기 앞서 CENTOS5 버전은 SELINUX를 기본 사용한다
꼭 이것을 disable 한 후 리부팅 한 후에 APM 설치한다
[root@localhost ~]# vi /etc/selinux/config
SELINUX=enforcing  ---> SELINUX=disabled

[root@localhost ~]# init 6  (리부팅)

1. 라이브러리 설치하기  (기존에는 라이브러리를 일일이 컴파일 하였지만 기본적으로 제공되는 yum
  패키지를 이용하여 라이브러리를 설치 하면 된다

[root@idccc ~]# yum -y install gcc gcc-c++ termcap libtermcap libtermcap-devel gdbm-devel zlib* libxml* freetype* libpng* libjpeg* gd gd-devel libmcrypt libmcrypt-devel mhash mhash-devel apr apr-* libc-client-devel openssl-devel krb5-devel 

php설치시에 iconv에러가 발생되기 때문에 iconv만 따로 컴파일 작업을 진행한다

[root@loca ~]# wget mirror.koreaidc.com/library/libiconv-1.13.tar.gz
[root@loca ~]# tar xvfz libiconv-1.13.tar.gz
[root@loca ~]# cd libiconv-1.13
[root@loca libiconv-1.13]# ./configure && make && make install

심벌릭 링크
[root@loca libiconv-1.13]# ln -s /usr/local/lib/libiconv.so.2 /usr/lib/libiconv.so.2
[root@loca libiconv-1.13]# ln -s /usr/local/lib/libiconv.so.2 /usr/lib64/libiconv.so.2


3. dovecot 설치 ( pop3기능을 하면서 PHP 설치시에 IMAP 기능을 활성하 하기 위해서 설치한다)
  하지만 dovecot 을 설치하면 의존성 관계로 mysql이 같이 설치되는데 이것은 추후 삭제하면 된다

[root@idccc ~]# yum -y install dovecot

강제로 mysql을 삭제

[root@idccc ~]# rpm -e mysql --nodeps

4. MYSQL 설치

  mysql 4.x 설치시 에러가 발생되는 경우가 있는데 이는 쓰레드 옵션때문이다
  쓰레드를 사용하기 위해서 아래와 같이 옵션을 추가해준다

[root@idccc ~]# echo "/* Linuxthreads */" >> /usr/include/pthread.h

 버전에 따라 mysql을 다운로드 하면 된다

[root@idccc ~]# wget mirror.koreaidc.com/mysql/mysql-4.0.20.tar.gz
[root@idccc ~]# tar xvfz mysql-4.0.20.tar.gz
[root@idccc ~]# cd mysql-4.0.20
[root@idccc mysql-4.0.20]# ./configure --prefix=/usr/local/mysql \
--with-unix-soket-path=/usr/local/mysql/tmp --enable-thread-safe-client \
--with-charset=latin1 --with-client-ldflags=-all-static --with-mysqld-ldflags=-all-static \
--without-debug --with-innodb --with-readline --with-berkeley-db --without-bench \
--with-extra-charsets=complex --with-charset=euc_kr --localstatedir=/free/mysql_data

[root@idccc mysql-4.0.20]# make
[root@idccc mysql-4.0.20]# make install

데이터베이스 인스톨

[root@idccc mysql-4.0.20]# cd /usr/local/mysql/bin
[root@idccc bin]# ./mysql_install_db

환경설정 파일 복사 및 퍼미션 변경

[root@idccc bin]# cd /usr/local/mysql/share/mysql
[root@idccc mysql]# cp -p ./mysql.server /usr/bin
[root@idccc mysql]# cp -a /usr/local/mysql/share/mysql/mysql.server /etc/rc.d/init.d/mysql
[root@idccc mysql]# ln -s /etc/rc.d/init.d/mysql /etc/rc.d/rc3.d/S97mysql
[root@idccc mysql]# chown -R root /usr/local/mysql
[root@idccc mysql]# chown -R mysql /free/mysql_data
[root@idccc mysql]# chgrp -R mysql /usr/local/mysql
[root@idccc mysql]# cp /usr/local/mysql/share/mysql/my-huge.cnf /etc/my.cnf

5. APACHE 설치

[root@idccc mysql]# cd /root
[root@idccc ~]# wget http://mirror.koreaidc.com/apache/httpd-2.2.14.tar.gz
[root@idccc ~]# tar xvfz httpd-2.2.14.tar.gz
[root@idccc ~]# cd httpd-2.2.14

기본값으로 설치시에는 최대 접속자수가 256이다 이것을 2048까지 늘려주기 위해 파일을 수정한다
여기서는 vi를 이용하지 않고 perl을 이용해 바로 수정하였다

[root@idccc httpd-2.2.14]# perl -pi -e "s/LIMIT 256/LIMIT 2048/g" server/mpm/prefork/prefork.c
[root@idccc httpd-2.2.14]# perl -pi -e "s/LIMIT 16/LIMIT 128/g" server/mpm/worker/worker.c

컴파일 작업 (옵션 내용중에서 prefork 방식과 worker 방식이 있는데 쓰레드 방식을 이용한다면
worker 선택하면 된다 즉 자식 프로세서를 이용한다는 것이다)

[root@idccc httpd-2.2.14]# ./configure --prefix=/usr/local/apache --enable-mods-shared=all --enable-module=shared --enable-rewrite --enable-ssl --with-ssl --with-mpm=worker
[root@idccc httpd-2.2.14]# make
[root@idccc httpd-2.2.14]# make install


mod_url 설치 (한글로 된 파일 오류 표시 수정)

[root@idccc ~]# wget mirror.koreaidc.com/apache/mod_url-apache2-1[1].15.tar.bz2
[root@idccc ~]# tar xvfj mod_url-apache2-1\[1\].15.tar.bz2
[root@idccc ~]# cd mod_url-apache2
[root@idccc mod_url-apache2]# /usr/local/apache/bin/apxs -iac mod_url.c

이제 APACHE는 설치가 완료되었으므로 상황에 맞게 APACHE를 튜닝하면 된다 

6.PHP 설치

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

[root@loca ~]# echo "/lib" >> /etc/ld.so.conf
[root@loca ~]# echo "/lib64" >> /etc/ld.so.conf
[root@loca ~]# echo "/lib" >> /etc/ld.so.conf
[root@loca ~]# echo "/usr/local/mysql/lib/mysql" >> /etc/ld.so.conf
[root@loca ~]# echo "/usr/local/apache/modules" >> /etc/ld.so.conf
[root@loca ~]# echo "/usr/lib64" >> /etc/ld.so.conf
[root@loca ~]# echo "/usr/local/lib64" >> /etc/ld.so.conf
[root@loca ~]# ldconfig

PHP 다운로드 및 설치

[root@idccc ~]# wget http://mirror.koreaidc.com/php/php-5.2.5.tar.gz
[root@idccc ~]# tar xvfz php-5.2.5.tar.gz
[root@idccc ~]# cd php-5.2.5
./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-apxs2=/usr/local/apache/bin/apxs --with-config-file-path=/usr/local/apache/conf --with-png-dir=/usr/lib64 --with-zlib-dir=/usr/lib64 --with-gdbm=/usr/lib64 --with-gif-dir=/usr/lib64 --with-iconv=/usr/local --with-libidn=/usr/lib64 --with-freetype-dir=/usr --with-jpeg-dir=/usr --enable-mod-charset --with-language=korean --with-charset=euc_kr --with-gettext --with-ldap-dir=/usr/lib --with-imap --with-imap-ssl --with-ttf --with-kerberos --with-curl --with-db --with-png --with-zlib --with-xml --with-idn --with-gd --enable-exif --enable-trans-sid --enable-wddx --enable-magic-quotes --enable-calendar --enable-sockets --enable-ftp --enable-gd-imgstrttf --enable-bcmath --enable-force-cgi-redirect --enable-track-vars=yes --enable-mbstring --enable-mbregex --enable-mbstr-enc-trans --enable-sigchild --enable-idn --enable-sockets --enable-dbx --enable-dbase
[root@idccc php-5.2.5]# make
[root@idccc php-5.2.5]# make install

php.ini 파일 복사 및  환경설정 내용 변경  (vi로 변경해도 되지만 쉽게 perl로 변경)

[root@idccc php-5.2.5]# cp -a php.ini-dist /usr/local/apache/conf/php.ini
[root@idccc php-5.2.5]# perl -pi -e "s/register_globals = Off/register_globals = On/g" /usr/local/apache/conf/php.ini
[root@idccc php-5.2.5]# perl -pi -e "s/upload_max_filesize = 2M/upload_max_filesize = 12M/g" /usr/local/apache/conf/php.ini
[root@idccc php-5.2.5]# perl -pi -e "s/allow_url_fopen = On/allow_url_fopen = Off/g" /usr/local/apache/conf/php.ini

일반 사용자도 php를 사용할수 있게 심벌릭 링크

[root@idccc php-5.2.5]# ln -s /usr/local/php/bin/php /usr/bin/php

아파치에 모듈 추가

[root@idccc php-5.2.5]# vi /usr/local/apache/conf/httpd.conf

LoadModule php5_module        modules/libphp5.so

7. ZendOptimizer 설치 (php 가속도를 위해서 설치)

[root@idccc ~]# wget http://mirror.koreaidc.com/Zend/ZendOptimizer-3.3.3-linux-glibc23-x86_64.tar.gz
[root@idccc ~]# tar xvfz ZendOptimizer-3.3.3-linux-glibc23-x86_64.tar.gz
[root@idccc ~]# cd ZendOptimizer-3.3.3-linux-glibc23-x86_64
[root@idccc ZendOptimizer-3.3.3-linux-glibc23-x86_64]# ./install

php.ini  위치 입력시 다음과 같이 입력  :  /usr/local/apache/conf   

8. 이제 최종 모두 설치가 완료 되었다
  각 데모은 실행시켜보면 동작이 되는지를 확인하며 된다