Centos + Apache + Php + Mysql InstallCentos + Apache + Php + Mysql Install

Posted at 2010. 10. 5. 13:13 | Posted in Server
반응형

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

wget http://mirror.khlug.org/apache/httpd/httpd-2.2.11.tar.gz
wget http://www.php.net/get/php-5.2.9.tar.gz/from/kr2.php.net/mirror
wget http://dev.mysql.com/get/Downloads/MySQL-6.0/mysql-6.0.9-alpha-linux-i686-glibc23.tar.gz/from/ftp://mirror.khlug.org/mysql/


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.14.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
 
PHP설치하고 Apache연동을 하려는데 쌩뚱맞은 에러가 나타났다.

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
 

restorecon -R -v /usr/local/apache/modules/libphp5.so

 

세그먼트 쪽이라서 해당 파일을 기본 설정으로 돌려보았지만 같은 에러가 나타난다.

흠... 뭐가 문제일까...
구글을 검색하여 보니 나와 같은 사람들이 많았다.
파일 설정이 아닌 문맥 오류라고 봐야 될듯 하다.

 chcon -t texrel_shlib_t /usr/local/apache/modules/libphp5.so


반응형

//