본문 바로가기

Server/Linux

CentOS v5.2 APM설치 가이드

Environment
CentOS v5.2 (2.6.18-92.1.18.el5)
Apache v2.2.10 (Source설치)
MySQL v5.0.45 (RPM 설치)
PHP v5.2.6
ZendOptimizer v3.3.3


설치 순서
MySQL >>> Apache >>> PHP

1. MySQL
MySQL RPM버전이 소스 컴파일 한 버전 보다 조금 더 월등하다는 소문이 있다고 하여 RPM으로 설치
# yum -y install mysql mysql-server mysql-connector-odbc mysql-devel

모든 설치가 끝났으면 다시 한번 확인하여 보자.
# rpm -qa | grep mysql
mysql-connector-odbc-3.51.12-2.2
mysql-5.0.45-7.el5
mysql-server-5.0.45-7.el5
libdbi-dbd-mysql-0.8.1a-1.2.2
mysql-devel-5.0.45-7.el5

한방에 쭉 내려가 보자!
자신에게 맞는 또는 사용하려는 환경파일을 복사하고 MySQL DB를 만들고,
MySQL을 구동 후 Root 비번을 바꾸어 주고 접속을 시도해 본다.
[MySQL 환경 설정]
my-huge.cnf       1G 이상 (시스템 메모리)
my-large.cnf       512M ~ 1G
my-medium.cnf  128M ~ 256M
my-small.cnf      64M 이하

# cp /usr/share/mysql/my-huge.cnf /etc/my.cnf
# mysql_install_db && chown -R mysql:mysql /var/lib/mysql/
# /etc/rc.d/init.d/mysqld start
# mysqladmin -u root password "암호"
# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.0.45 Source distribution

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql>

이로서 MySQL설치는 끝.


 
2. Apache
아파치를 다운 받고 압축을 풀고 설치 준비를 한다.
# wget http://www.apache.org/dist/httpd/httpd-2.2.10.tar.gz
# bunzip2 httpd-2.2.10.tar.gz
# tar xvf bunzip2
# cd httpd-2.2.10


아파치 최적화를 위해 2가지 파일을 수정한다.
vi server/mpm/prefork/prefork.c
#define DEFAULT_SERVER_LIMIT 1280

vi server/mpm/worker/worker.c
#define DEFAULT_SERVER_LIMIT 20

# ./configure \
 --prefix=/usr/local/apache \
 --enable-so \
 --enable-module=so \
 --enable-shared=max \
 --enable-module=rewrite \
 --enable-shared=rewrite


설정이 끝나면 컴파일하여 설치한 후 아파치를 가동 시켜 웹페이지에서 확인한다.
# make && make install && /usr/local/apache/bin/apachectl start



3. PHP
예전 버전은 쉽게 설치가 되었는데 v5.2.6을 설치 하면서는 조금 시간이 걸렸다.
우선 사전 준비가 필요하다.
PHP와 함게 설치 할 라이브러리를 모두 설치 한다.
여기서는 일반적으로 많이 사용 되는 라이브러리를 설치했다.
yum -y install \
libxml2 \
libxml2-devel \
libjpeg \
libjpeg-devel \
libpng \
libpng-devel \
freetype \
freetype-devel \
gmp \
gmp-devel \
libc-client-devel  \
openssl \
openssl-devel \
mhash \
mhash-devel \
libmcrypt \
libmcrypt-devel


라이브러리가 모두 설치 되었으면 PHP 소스파일을 받은 후 압축 을 해제한다.
# wget http://kr2.php.net/get/php-5.2.6.tar.bz2/from/this/mirror
# bunzip2 php-5.2.6.tar.bz2
# tar xvf php-5.2.6.tar
# cd php-5.2.6


* php-5.2.6.tar.bz2와 같이 tar로 묶어 bzip으로 압축한 파일들은 아래와 같은 방법으로 한 줄로도 압축 해제가 가능하다.

# bunzip2 -c php-5.2.6.tar.bz2 | tar xvf -

# CFLAGS="-O3 -march=i686 -funroll-loops -fomit-frame-pointer" \
 ./configure \
--with-apxs2=/usr/local/apache/bin/apxs \
--with-mysql \
--disable-debug \
--disable-posix \
--disable-rpath \
--enable-safe-mode \
--enable-magic-quotes \
--disable-dmalloc \
--enable-bcmath \
--enable-gd-native-ttf \
--enable-sysvsem \
--enable-sysvshm \
--enable-wddx \
--enable-inline-optimization \
--enable-mbstring \
--enable-mbregex \
--enable-gd-native-ttf \
--with-config-file-path=/usr/local/lib \
--with-jpeg-dir \
--with-freetype-dir  \
--with-imap=shared \
--with-imap-ssl=/usr/lib \
--with-kerberos \
--with-mhash \
--with-mcrypt=/usr/local/lib\
--with-curl=/usr/local/lib \
--with-zlib \
--with-gd \
--with-ttf \
--with-gmp \
--with-mhash \
--with-openssl

# make && make install
# cp php.ini-dist /usr/local/lib/php.ini



4. ZendOptimizer

파일 다운로드 후 바로 설치 하면 된다.
# wget http://downloads.phpchina.com/zend/optimizer/3.3.3/ZendOptimizer-3.3.3-linux-glibc23-i386.tar.gz
# tar xzvf ZendOptimizer-3.3.3-linux-glibc23-i386.tar.gz
# cd ZendOptimizer-3.3.3-linux-glibc23-i386
# ./install
설치 중 나오는 메뉴는 기본으로 모두 다음 > 다음 눌러 설치하면 된다.

이제 부터는 /etc/php.ini가 아닌 /usr/local/Zend/etc/php.ini 가 PHP 설정 파일이 된다.


5. Apache <=> PHP 연동 및 아파치 자동 시작
# vi /usr/local/apache/conf/httpd.conf
// 맨 뒷 줄에 추가
DirectoryIndex index.html index.htm index.php
AddType application/x-httpd-php .php .phtml .php3 .html .htm
AddType application/x-httpd-php-source .phps
# vi /usr/local/apache/conf/mime.types
// 맨 뒷줄에 추가
application/x-httpd-php  php ph inc
application/x-httpd-php-source phps

# /usr/local/apache/bin/apachectl restart

# vi /etc/rc.d/rc.local
// 맨 뒷줄에 추가
/usr/local/apache/bin/apachectl start

# ntsysv
[*] mysqld



6. 설치 중 발생했던 오류들
MySQL, Apache, PHP는 정상 설치 되었지만 Apache-PHP연동 및 PHP-Zend에서 몇몇 오류가 발생되었다.

6-1. libphp5.so
# /usr/local/apache/bin/apachectl restart
httpd: Syntax error on line 53 of /usr/local/apache/conf/httpd.conf: Cannot load /usr/local/apache/modules/libphp5.so into server: /usr/local/apache/modules/libphp5.so: cannot restore segment prot after reloc: Permission denied


[해결방법]

6-2. Zend Module미설치 (phpinfo에서 확인 가능)

[해결방법]