○ CentOS 64bit Apache PHP 컴파일 설치
▷ mysql은 rpm을 사용
▷ PHP 관련 라이브러리 설치
- rpm 과 연동하여 컴파일을 해도 되지만 rpm 업데이트시에 정상 동작을 보장할수 없다
버그패치 정도의 업데이트가 아닌 라이브러리의 버전 업데이트는 Apache의 기동이
되지 않는 상황이 발생할수 있다
▷ 라이브러리 설치
- 설치할 소스 : zlib-1.2.5 openssl-0.9.8op freetype-2.3.12 jpegsrc.v8a.tar.gz
libpng-1.2.39 libxml2-2.6.30 expat-2.0.1 fontconfig-2.8.0 gd-2.0.35
- 설치되는 소스는 /usr/local 에 설치될 것이며 각각의 설치된 라이브러리를 등록 시켜야 한다
PHP 컴파일 설치시에 /usr/local/lib에 설치된 라이브러리를 /usr/local/lib64에서 찾으려고 하는 문제가 있다
PHP설치 옵션의 PATH를 /usr/local/lib으로 지정해도 라이브러리를 찾을 수 없다는
Error 가 발생한다
다음과 같이 심볼릭 링크로 설정하자
[root@web5 ~]# ln -s /usr/local/lib /usr/local/lib64
- zlib 설치
다운로드 URL : http://www.zlib.net
[root@web ~]# cd /usr/local/src/ [root@web6 src]# wget http://zlib.net/zlib-1.2.5.tar.gz [root@web6 src]# tar xvfz zlib-1.2.5.tar.gz [root@web6 src]# cd zlib-1.2.5 [root@web6 zlib-1.2.5]# ./configure --shared --prefix=/usr/local [root@web6 zlib-1.2.5]# make [root@web6 zlib-1.2.5]# make install [root@web6 zlib-1.2.5]# ldconfig [root@yt-web6 zlib-1.2.5]# cd ..
- openssl 설치
다운로드 URL : http://www.openssl.org
[root@yt-web6 zlib-1.2.5]# cd .. [root@web6 src]# wget http://www.openssl.org/source/openssl-0.9.8o.tar.gz [root@web6 src]# tar xvfz openssl-0.9.8o.tar.gz [root@web6 src]# cd openssl-0.9.8o [root@web6 openssl-0.9.8o]# ./config --prefix=/usr/local zlib shared [root@web6 openssl-0.9.8o]# make [root@web6 openssl-0.9.8o]# make install [root@yt-web6 openssl-0.9.8o]# cd ..
- freetype 설치
다운로드 URL : http://freetype.sourceforge.net/index2.html
[root@web6 src]# wget http://sourceforge.net/projects/freetype/files/freetype2/2.3.12/freetype-2.3.12.tar.gz/download [root@web6 src]# tar xvfz freetype-2.3.12.tar.gz [root@web6 src]# cd openssl-0.9.8o [root@yt-web6 freetype-2.3.12]# ./configure --prefix=/usr/local --disable-static [root@yt-web6 freetype-2.3.12]# make [root@yt-web6 freetype-2.3.12]# make install [root@yt-web6 freetype-2.3.12]# ldconfig [root@yt-web6 freetype-2.3.12]# cd .. |
- jpeg 설치
다운로드 URL : http://www.ijg.org
[root@web6 src]# wget http://www.ijg.org/files/jpegsrc.v8b.tar.gz [root@web6 src]# tar xvfz jpegsrc.v8a.tar.gz [root@web6 src]# cd jpeg-8a [root@yt-web6 jpeg-8a]# ./configure --prefix=/usr/local --enable-shared --enable-static [root@yt-web6 jpeg-8a]# make [root@yt-web6 jpeg-8a]# make install [root@yt-web6 jpeg-8a]# ldconfig [root@yt-web6 jpeg-8a]# cd .. |
- libpng 설치
다운로드 URL : http://libpng.sourceforge.net
[root@web6 src]# wget http://sourceforge.net/projects/libpng/files/libpng-stable/1.2.39/libpng-1.2.39.tar.gz/download [root@web6 src]# tar xvfz libpng-1.2.39.tar.gz [root@web6 src]# cd libpng-1.2.39 [root@yt-web6 libpng-1.2.39]# ./configure --prefix=/usr/local [root@yt-web6 libpng-1.2.39]# make [root@yt-web6 libpng-1.2.39]# make install [root@yt-web6 libpng-1.2.39]# ldconfig [root@yt-web6 libpng-1.2.39]# cd ..
- libxml2설치
다운로드 URL : http://xmlsoft.org
[root@web6 src]# wget http://xmlsoft.org/sources/old/libxml2-2.6.30.tar.gz [root@web6 src]# tar xvfz libxml2-2.6.30.tar.gz [root@web6 src]# cd libxml2-2.6.30 [root@yt-web6 libxml2-2.6.30]# ./configure --prefix=/usr/local [root@yt-web6 llibxml2-2.6.30]# make [root@yt-web6 libxml2-2.6.30]# make install [root@yt-web6 libxml2-2.6.30]# ldconfig [root@yt-web6 libxml2-2.6.30]# cd ..
- expat2설치
다운로드 URL : http://www.libexpat.org
[root@web6 src]# wget http://sourceforge.net/projects/expat/files/expat/2.0.1/expat-2.0.1.tar.gz/download [root@web6 src]# tar xvfz tar xvfz expat-2.0.1.tar.gz [root@web6 src]# cd expat-2.0.1 [root@yt-web6 expat-2.0.1]# ./configure --prefix=/usr/local [root@yt-web6 expat-2.0.1]# make [root@yt-web6 expat-2.0.1]# make install [root@yt-web6 expat-2.0.1]# ldconfig [root@yt-web6 expat-2.0.1]# cd ..
- fontconfig2설치
다운로드 URL : http://fontconfig.org/wiki
[root@web6 src]# wget http://fontconfig.org/release/fontconfig-2.8.0.tar.gz [root@web6 src]# tar xvfz fontconfig-2.8.0.tar.gz [root@web6 src]# cd fontconfig-2.8.0 [root@yt-web6 fontconfig-2.8.0]# ./configure --prefix=/usr/local --with-expat=/usr/local [root@yt-web6 fontconfig-2.8.0]# make [root@yt-web6 fontconfig-2.8.0]# make install [root@yt-web6 fontconfig-2.8.0]# ldconfig [root@yt-web6 expat-2.0.1]# cd ..
- gd2설치
다운로드 URL : http://www.libgd.org/Main_Page
make시에 에러가 난다면 make를 한번더 실행
[root@web6 src]# wget http://www.libgd.org/releases/gd-2.0.35.tar.gz [root@web6 src]# tar xvfz gd-2.0.35.tar.gz [root@web6 src]# cd gd-2.0.35 [root@yt-web6 fontconfig-2.8.0]# ./configure --prefix=/usr/local/gd --with-freetype=/usr/local --with-png=/usr/local --with-jpeg=/usr/local --with-fontconfig=/usr/local [root@yt-web6 gd-2.0.35]# make [root@yt-web6 gd-2.0.35]# make [root@yt-web6 gd-2.0.35]# make install [root@yt-web6 gd-2.0.35]# ldconfig [root@yt-web6 gd-2.0.35]# cd ..
- httpd2설치
다운로드 URL : http://httpd.apache.org
[root@web6 src]# wget http://apache.tt.co.kr/httpd/httpd-2.2.15.tar.gz [root@web6 src]# tar xvfz httpd-2.2.15.tar.gz [root@web6 src]# cd httpd-2.2.15 [root@yt-web6 httpd-2.2.15]# vi server/mpm/worker/worker.c 85 #define DEFAULT_SERVER_LIMIT 1024 103 #define DEFAULT_THREAD_LIMIT 64 [root@yt-web6 httpd-2.2.15]# ./configure --prefix=/usr/local/apache --enable-so --with-mpm=worker --enable-ssl --with-ssl=/usr/local --enable-expires [root@yt-web6 httpd-2.2.15]# make [root@yt-web6 httpd-2.2.15]# make install [root@yt-web6 httpd-2.2.15]# cd ..
worker 방식의 Apache를 설치하였으며 정적 컴파일 설치를 하였다
worker.c의 85번, 103번 라인을 서버 상황에 맞게 여유있게 설정한다
DEFAULT_SERVER_LIMIT 는 프로세스의 개수 제한
DEFAULT_THREAD_LIMIT 는 프로세스당 쓰레드의 갯수 제한
위의 설정은 1024 * 64 = 65536 개의 쓰레드를 생성할수 있으며 work 방식의 장점은 pork 방식에 비하여 메모리를 확실히 절약할 수 있다
work방식의 튜닝은 프로세스당 적당량의 쓰레드의 설정이 관건이다
너무 많은 쓰레드를 할당하면 프로세스당 메모리 사용량이 비대해져서 메모리의 절약은 있는 반면 성능저하의 원인이 될수 있다
현재의 설정은 최대의 개수제한을 설정 및 컴파일한 것으로 세부적인 설정은 config 파일에서 조정할 수 있다
- php 설치
다운로드 URL : http://www.php.net
[root@web6 src]# wget http://www.php.net/get/php-5.3.2.tar.gz/from/a/mirror [root@web6 src]# tar xvfz tar xvfz php-5.3.2.tar.gz [root@web6 src]# cd php-5.3.2 [root@yt-web6 php-5.3.2]# ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs --with-mysql=/usr --with-mysqli=/usr/lib64/mysql/mysql_config --with-config-file-path=/usr/local/apache/conf --with-zlib-dir=/usr/local --with-jpeg-dir=/usr/local --with-png-dir=/usr/local --with-freetype-dir=/usr/local --with-libxml-dir=/usr/local --with-gd=/usr/local/gd --with-iconv --enable-ftp --with-openssl=/usr/local --with-libdir=lib64 [root@yt-web6 httpd-2.2.15]# make [root@yt-web6 httpd-2.2.15]# make install [root@yt-web6 httpd-2.2.15]# cp php.ini-development /usr/local/apache/conf/ [root@yt-web6 httpd-2.2.15]# vi /usr/local/apache/conf/httpd.conf LoadModule php5_module modules/libphp5.so AddType application/x-httpd-php .php .phtml .html .htm .inc .cfg AddType application/x-httpd-php-source .phps
작성자 goodnux@paran.com 크리엘
[출처] ♪ CentOS 64bit Apache PHP 컴파일 설치|작성자 고무다라
'Dev > PHP' 카테고리의 다른 글
php mssql 연동 (freetds) (0) | 2011.05.13 |
---|---|
FreeTDS 설치 (PHP와 MS-SQL 연동) (0) | 2011.05.13 |
PHP Configure Option (0) | 2011.05.13 |
PHP 암호화 함수정리 (0) | 2011.05.07 |
[PHP] Thread safe / non Thread safe (2) | 2011.04.19 |