컴파일 오류시 대처하기

1.

configure: error: xml2-config not found. Please check your libxml2 installation.  에러날때
# yum install libxml2-devel

 

2.

configure: error: Please reinstall the BZip2 distribution   에러날때
해결책 :
[root@localhost local]# wget ftp://sources.redhat.com/pub/bzip2/v102/bzip2-1.0.2.tar.gz
Bzip2팩키지는 configure script가 없습니다. option을 한줄로 써서 컴파일 하고 설치합니다.
# cd bzip2-1.0.2
# make PREFIX=/tools install
# make clean
# cd ../php-5.2.11

 

3.

configure: error: libXpm.(a|so) not found   에러날때
# yum install gtk+ gtk+-devel

# yum install libXpm-devel

 

(# yum install xorg-x11-devel)

 

 

4.

configure: error: mcrypt.h not found. Please reinstall libmcrypt.   에러날때
# cd ..
# wget http://ftp.linux.co.kr/pub/etc/libmcrypt-2.5.7.tar.gz
# tar zxvfp libmcrypt-2.5.7.tar.gz
# cd libmcrypt-2.5.7
# ./configure && make && make install
# cd ../php-5.2.11

 

5.

/usr/bin/ld: cannot find -lltdl
collect2: ld returned 1 exit status
make: *** [libphp5.la] Error 1   오류가 날때
# cd ..
# wget http://ftp.gnu.org/gnu/libtool/libtool-2.2.6a.tar.gz
# cd libtool-2.2.6
# ./configure
# make
# make install
# cd ../php-5.2.11

 

6.

overflow2 에러 발생시
~/php-5.3.4/ext/gd/gd.c (php를 받아서 압축을 푼 경로)


/*
        if (overflow2(font->nchars, font->h)) {
                php_error_docref(NULL TSRMLS_CC, E_WARNING, "Error reading font, invalid font header");
                efree(font);
                php_stream_close(stream);
                RETURN_FALSE;
        }
        if (overflow2(font->nchars * font->h, font->w )) {
                php_error_docref(NULL TSRMLS_CC, E_WARNING, "Error reading font, invalid font header");
                efree(font);
                php_stream_close(stream);
                RETURN_FALSE;
        }
*/ 해당 부분을 주석처리


'Dev > PHP' 카테고리의 다른 글

PHP CLI 예제 -> 명령행 옵션, argc argv 매개 변수 구하기  (0) 2011.05.13
php5.3 에 ioncube 설치하기  (0) 2011.05.13
php 컴파일에러  (0) 2011.05.13
php mssql 연동 (freetds)  (0) 2011.05.13
FreeTDS 설치 (PHP와 MS-SQL 연동)  (0) 2011.05.13
출처 : http://www.ysy2080.com/uribury/linuxno3/929
 

오류 메세지 : configure: error: xml2-config not found. Please check your libxml2 installation 
해결 방법 : yum install libxml2 libxml2-devel -y 

오류 메세지 : configure: error: Please reinstall the BZip2 distribution 
해결 방법 : yum -y install bzip2-devel 

오류 메세지 : configure: error: libjpeg.(a|so) not found. 
해결 방법 : yum -y install libjpeg-devel 

오류 메세지 : configure: error: libpng.(a|so) not found. 
해결 방법 : yum -y install libpng-devel 

오류 메세지 : configure: error: freetype.h not found. 
해결 방법 : yum -y install freetype-devel 

오류 메세지 : configure: error: utf8_mime2text() has new signature, but U8T_CANONICAL is missing. This should not happen. Check config.log for additional information. 
해결 방법 : yum -y install libc-client-devel 

오류 메세지 : configure: error: Kerberos libraries not found. 
해결 방법 : yum -y install krb5-devel 

오류 메세지 : configure: error:Cannot find OpenSSL's <evp.h> 
해결 방법 : yum -y install openssl-devel

 

checking for termcap functions library... configure: error: No curses/termcap library found
해결책 :  # yum -y install ncurses-devel

configure: error: C++ preprocessor "/lib/cpp" fails sanity check
해결책 : # yum -y install gcc-c++

/usr/lib/libdb-4.3.so: could not read symbols: File in wrong format
/usr/lib/libexpat.so: could not read symbols: File in wrong format

해결책 : # mv /usr/lib/libexpat.so /usr/lib/libexpat.so.bak
               # ln -s /lib64/libexpat.so.0.5.0 /usr/lib/libexpat.so 
               # mv /usr/lib/libdb-4.3.so /usr/lib/libdb-4.3.so.bak
               # ln -s /lib64/libdb-4.3.so /usr/lib/libdb-4.3.so
에러의 원인은 64비트 환경에서 32비트용 소스를 가져다가 설치하기 때문이다. 컴파일 도구와 관련된 심볼릭 링크 파일을 찾지 못한다고 나오고 있다.

configure: error: Unable to locate gmp.h
해결책 : # yum -y install gmp*

configure: error: not found. Please reinstall the expat distribution.
해결책 : # yum -y install expat*

configure: error: Please reinstall the libcurl distribution - easy.h should be in /include/curl/
해결책 : # yum -y install curl* 또는 yum -y install curl & yum -y install curl-devel

configure: error: Please reinstall libmcrypt - I cannot find mcrypt.h <br>
configure: error: Please reinstall libmhash - I cannot find mhash.h
해결책 : # yum install libmcrypt libmcrypt-devel libmhash libmhash-devel

Configure: error: xml2-config not found. Please check your libxml2 installation
해결책 : #yum install libxml2-devel

Checking for pkg-config... /usr/bin/pkg-config
configure: error: Cannot find OpenSSL's <evp.h>
해결책 : #yum install openssl-devel

Configure: error: Please reinstall the BZip2 distribution
해결책 : # yum install bzip2-devel

Configure: error: libjpeg.(also) not found.
해결책 : # yum install libjpeg-devel

Configure: error: libpng.(also) not found.
해결책 : yum install libpng-devel

Configure: error: freetype.h not found.
해결책 : #yum install freetype-devel

Configure: error: Cannot find MySQL header files under /usr.
Note that the MySQL client library is not bundled anymore!
해결책 : # yum install mysql-devel

Configure: error: Please reinstall the ncurses distribution
해결책 : # yum install ncurses-devel

Checking for unixODBC support... configure: error: ODBC header file '/usr/include/sqlext.h' not found!
해결책 : # yum install unixODBC-devel

Configure: error: Cannot find pspell
해결책 : # yum install pspell-devel

Configure: error: snmp.h not found. Check your SNMP installation.
# yum install net-snmp-devel

configure: error: ZLIB extension requires zlib >= 1.0.9

ln -sf /usr/lib64/libgssapi_krb5.so.2.2 /usr/lib/libgssapi_krb5.so
ln -sf /usr/lib64/libkrb5.so.3.3 /usr/lib/libkrb5.so
ln -sf /usr/lib64/libk5crypto.so.3.1 /usr/lib/libk5crypto.so
ln -sf /lib64/libcom_err.so.2 /usr/lib/libcom_err.so
ln -sf /usr/lib64/libgcrypt.so.11 /usr/lib/libgcrypt.so
ln -sf /usr/lib64/libgpg-error.so.0 /usr/lib/libgpg-error.so
ln -sf /usr/lib64/libexpat.so /usr/lib/libexpat.so
ln -sf /usr/lib64/libm.so /usr/lib/libm.so
ln -sf /usr/lib64/libssl.so /usr/lib/libssl.so

64bit os에서 php 5.2.6 configure 옵션에 --with-kerberos 옵션 넣어서 configure 진행했을경우 에러 나는 경우 조치 사항

krb5-devel 관련 라이브러리 파일을 /usr/lib64 에서 /usr/lib로 복사 링크

/usr/lib64/libdes425.a
/usr/lib64/libdes425.so
/usr/lib64/libgssapi_krb5.a
/usr/lib64/libgssapi_krb5.so
/usr/lib64/libgssrpc.a
/usr/lib64/libgssrpc.so
/usr/lib64/libk5crypto.a
/usr/lib64/libk5crypto.so
/usr/lib64/libkadm5clnt.a
/usr/lib64/libkadm5clnt.so
/usr/lib64/libkadm5srv.a
/usr/lib64/libkadm5srv.so
/usr/lib64/libkdb5.a
/usr/lib64/libkdb5.so
/usr/lib64/libkrb4.a
/usr/lib64/libkrb4.so
/usr/lib64/libkrb5.a
/usr/lib64/libkrb5.so

'Dev > PHP' 카테고리의 다른 글

php5.3 에 ioncube 설치하기  (0) 2011.05.13
컴파일 오류시 대처하기  (0) 2011.05.13
php mssql 연동 (freetds)  (0) 2011.05.13
FreeTDS 설치 (PHP와 MS-SQL 연동)  (0) 2011.05.13
CentOS 64bit Apache PHP 컴파일 설치  (2) 2011.05.13

○ 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 에 설치될 것이며 각각의 설치된 라이브러리를 등록 시켜야 한다

 

[root@web ~]# rpm -qa | grep mysql
mysql-5.0.77-4.el5_5.3
mysql-5.0.77-4.el5_5.3
mysql-devel-5.0.77-4.el5_5.3
mysql-devel-5.0.77-4.el5_5.3mysql-5.0.77-4.el5_5.3
mysql-5.0.77-4.el5_5.3
mysql-devel-5.0.77-4.el5_5.3
mysql-devel-5.0.77-4.el5_5.3

 

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 크리엘

'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

참고 url : http://orion203.springnote.com/pages/6906419.xhtml

 

Php 5.2.16 설치 문서입니다. 이것이 어떤 프로그램인지는 홈페이지를 참조하세요.

 

Prepare#

CentOS 5 가 최소 설치되었다고 가정하고 시작했기 때문에 컴파일 환경을 구축을 먼저 해줘야 합니다.

yum update -y

reboot

yum install gcc.x86_64 gcc-c++.x86_64 wget.x86_64 bzip2-devel.x86_64 pkgconfig.x86_64 openssl-devel.x86_64 make.x86_64 man.x86_64 nasm.x86_64 gmp.x86_64 gdbm-devel.x86_64 readline-devel.x86_64 compat-readline43.x86_64 ncurses-devel.x86_64 db4-devel.x86_64 automake* autoconf* -y

 

 

Donwload and Unpack#

 

cd /usr/src

wget ftp://ftp.sayclub.com/pub/languages/php/php-5.2.16.tar.bz2

tar xvjf php-5.2.16.tar.bz2

cd php-5.2.16

 

Knowledge#

Php는 아주 많은 기능들을 제공합니다. 이러다보니 Configure 옵션도 많아서 제대로 지정해주지 않으면 사용하지도 않는 기능이 내장이 된다거나 꼭 필요한 기능인데 shared module로 올린다거나 하는 불상사가 발생할 수 있습니다. 따라서 무엇이 필요한지 자주 사용되는 기능인지를 따져보는 것이 좋습니다.

 

Php의 많은 기능들은 컴파일할때 기능을 내장하는 Built in 방식과 필요한 기능만을 그때 그때 컴파일해서 붙여서 쓰는 shared 방식을 사용할 수 있습니다. 보통 Built in 방식으로 지정을하지 않으면 전부다 shared 방식으로 언제든지 붙여서 쓸수 있기 때문에 너무 걱정을 하지 않아도 됩니다.

 

Built in 방식은 보통 자주 쓰는 경우에 사용을하고 shared 방식은 가끔 쓰는 기능이 필요한 경우에 사용을 합니다. 따라서 Php가 어떤 목적으로 사용할 것인지를 알아야 필요한 기능을 Built in 할것인지를 알 수 있겠죠.

 

주요한 기능들은 다음과 같습니다.

 

  1. --with-pear     - php 라이브러리인 pear 를 지원.
  2. --with-gettext  - php내에 국제화를 위한 프로그램을 지원하기위해서 필요한 기능을 지원.
  3. --with-iconv     - 문자셋 변환을 위한 기능을 지원.
  4. --with-bz2      - 압축프로그램인 BZip2 기능을 지원.
  5. --with-gmp      - GNU MP 지원. GNU MP는 멀티 프로세싱을 위한 것입니다. 쓰레드, Fork 와는 또다른 병렬 프로그래밍 기법입니다.
  6. --with-apxs2    - apache2 와 연동 지원.
  7. --with-zlib      - ZLIB 지원.
  8. --with-mcrypt   - mcrypt 로 암호화 과련 기능을 지원.
  9. --with-mhash    - mhash 지원.
  10. --with-mysql     - mysql 데이터베이스 지원.
  11. --with-pdo-mysql  - pdo mysql 지원.
  12. --with-mysqli         - mysqli 지원.
  13. --with-pgsql      - pgsql 데이터베이스 지원.
  14. --with-pdo-pgsql  - pdo pgsql 지원.
  15. --with-xmlrpc      - xmlrpc 지원.
  16. --with-libxml-dir    - XML2 지원을 위한 libxml2 라이브러리 디렉토리 지정.
  17. --with-pcre-dir    - Perl Compatible Regular Expression 지원을 위한 라이브러리 디렉토리 지정.
  18. --with-gd          - GD 그래픽 지원.

  19. --with-native-ttf     - TrueType 문자열 지원.

  20. --with-jpeg-dir    - JPEG 그래픽 지원을 위한 라이브러리 디렉토리 지정.

  21. --with-png-dir     - PNG 그래픽 지원을 위한 라이브러리 디렉토리 지정.

  22. --with-xpm-dir     - XPM 그래픽 지원을 위한 라이브러리 디렉토리 지정.

  23. --with-ttf          - FreeType 폰트 지원.

  24. --with-freetype-dir - FreeType 폰트 라이브러리 디렉토리 지정.

  25. --enable-safe-mode      - safe mode 지원.

  26. --enable-zend-multibyte  - Zend 의 multibyte 지원.

  27. --enable-soap   - SOAP 웹 서비스 지원.

  28. --enable-curl     - cURL 지원.

  29. --enable-sockets  - fsockopen 과 같은 소켓 함수를 쓰기위해서는 필요합니다.

  30. --enable-zip        - Zip 파일을 읽고 쓸수 있는 기능 지원.

  31. --enable-magic-quotes  - '," 와 같은 것을 자동으로 처리해주는 기능을 제공합니다.

  32. --enable-mbstring   - multibyte 문자열 처리를 위한 지원.

  33. --enable-shmop      - Shared Memory Operations 으로서 공유메모리 접근 기능을 지원합니다. Windows 플랫폼은 사용할 수 없습니다. 여기를 참고하세요.

  34. --enable-pcntl(CLI/CGI only)  - Process Control 를 지원합니다. Windows 플랫폼은 사용할 수 없습니다.

  35. --enable-sysvmsg    - System V message 를 지원합니다. Windows 플랫폼은 사용할 수 없습니다. 여기를 참고하세요.

  36. --enable-sysvsem    - System V Semaphore 를 지원합니다. Windows 플랫폼은 사용할 수 없습니다. 여기를 참고하세요.

  37. --enable-sysvshm     - System V shared memory 를 지원합니다. Windows 플랫폼은 사용할 수 없습니다. 여기를 참고하세요.

  38. --enable-calendar    - Calendar Conversion 를 지원합니다.

  39. --enable-bcmath     - bc 스타일의 수학함수를 지원합니다.

  40. --enable-ftp         - ftp 지원.

  41. --enable-exif        - 이미지 메타정보 표시를 지원합니다.

  42. --enable-fastcgi     - FastCGI 지원.

 

주로 많이 사용하는 Configure 옵션들은 위와 같습니다. 자세히 보면 'with' 시작하는 것이 있고 'enable' 로 시작하는 것이 있는데, with 의 경우에는 외부의 라이브러리가 있어야 하며 enable은 php에 라이브러리를 내장하고 있어 기능을 켜는 역활을 합니다.

 

Configure 를 하기전에 위의 내용을 알고 있어야 자신에게 필요한 것을 Php에 내장시킬 수 있습니다. 여기에서는 큰틀에서 다음과 같은 것을 Php에 넣을 것입니다.

 

  1. Apache 웹서버 연동. --with-apxs2 옵션 설정 필요.

  2. Mysql 데이터베이스 연동. --with-mysql, --with-pdo-mysql 옵션 설정 필요.

  3. Pgsql 데이터베이스 연동. --with-pgsql, --with-pdo-pgsql 옵션 설정 필요.

  4. 그래픽 이미지 지원. --with-gd, gd-native-ttf, jpg, png, freetype 기능이 필요함.

  5. xml 처리를 위한 기능이 필요. --with-libxml 옵션 설정 필요.

  6. pear 기능 필요. --with-pear 옵션 설정 필요.

  7. 기타 부가적인 기능들 필요. gettext, bz2, mcrypt, mbstring, magic quotas, iconv 등등

 

1~3까지는 설치 노트에 있는대로 설치를 한 것으로 간주했습니다. 나머지 설치를 위한 라이브러리 설치를 먼저 진행을 합니다. 즉 다음과 같습니다.

 

  • Apache2 - /usr/local/apache2

  • Mysql - /usr/local/mysql5.5

  • PostgreSQL - /usr/local/pgsql-9.0

 

 

--with-gd를 위한 CentOS Lib 설치.#

yum install gd.x86_64 gd-devel.x86_64

 

--with-jpeg-dir 를 위한 CentOS Lib 설치.#

yum install libjpeg.x86_64 libjpeg-devel.x86_64

 

--with-png-dir 를 위한 CentOS Lib 설치.#

yum install libpng.x86_64 libpng-devel.x86_64

 

--with-freetype-dir 를 위한 CentOS Lib 설치.#

yum install freetype.x86_64 freetype-devel.x86_64

 

--with-libxml-dir 를 위한 CentOS Lib 설치.#

yum install libxml2.x86_64 libxml2-devel.x86_64

 

--with-bz2 를 위한 CentOS Lib 설치.#

yum install bzip2.x86_64 bzip2-devel.x86_64

 

--with-gettext 를 위한 CentOS Lib 설치.#

yum install gettext.x86_64 gettext-devel.x86_64

 

--with-jpeg-dir 를 위한 CentOS Lib 설치.#

yum install libmcrypt.x86_64 libmcrypt-devel.x86_64

 

--with-mhash 를 위한 CentOS Lib 설치.#

yum install mhash.x86_64 mhash-devel.x86_64

 

--with-gmp 를 위한 CentOS Lib 설치.#

yum install gmp-devel.x86_64 gmp.x86_64

 

이외에도 필요한 기능들을 포함하면 한번쯤 CentOS 라이브러리를 패키지를 살펴봐야 합니다.

 

Configure and Compile#

이제 컴파일을 위한 Configure 는 다음과 같습니다.

 

./configure --prefix=/usr/local/php5.2.16 \

--with-libdir=lib64 \

--with-apxs2=/usr/local/apache2/bin/apxs \

--with-mysql=/usr/local/mysql5.5 \

--with-pdo-mysql=/usr/local/mysql5.5 \

--with-mysqli=/usr/local/mysql5.5/bin/mysql_config \

--with-pgsql=/usr/local/pgsql9.0 \

--with-pdo-pgsql=/usr/local/pgsql9.0 \

--with-pear \

--with-libxml-dir=/usr \

--with-gettext \

--with-iconv \

--with-zlib \

--with-mcrypt \

--with-mhash \

--with-gd \

--with-jpeg-dir=/usr \

--with-png-dir=/usr \

--with-freetype-dir=/usr \

--with-bz2 \

--enable-gd-native-ttf \

--enable-zip \

--enable-mbstring \

--enable-zend-multibyte \

--enable-safe-mode

 

make

make install

cp php.ini-recommended /usr/local/php5.2.16/lib/php.ini

 

Apache PHP Configure#

Apache 웹서버에서 PHP 컴파일을 인식시켜야 합니다. 이를 위해서 아파치에 설정을 해야 합니다.

 

]# cd /usr/local/apache2/conf/extra

]# vim httpd-php.conf

<IfModule php5_module>

    <FilesMatch "\.(htm|html|php)$">

        SetHandler application/x-httpd-php

    </FilesMatch>

 

    <FilesMatch "\.phps$">

        SetHandler application/x-httpd-php-source

    </FilesMatch>

 

    DirectoryIndex index.htm index.html index.php

</IfModule>

]# vim /usr/local/apache2/conf/httpd.conf

#Php settings

Include conf/extra/httpd-php.conf

 

]# /usr/local/apache2/bin/apachectl restart

'Dev > PHP' 카테고리의 다른 글

FreeTDS 설치 (PHP와 MS-SQL 연동)  (0) 2011.05.13
CentOS 64bit Apache PHP 컴파일 설치  (2) 2011.05.13
PHP 암호화 함수정리  (0) 2011.05.07
[PHP] Thread safe / non Thread safe  (2) 2011.04.19
upload_max_filesize  (0) 2011.04.19

+ Recent posts