PHP Fatal error:  Call to undefined function  json_encode() in.. 


centos 5.x

php 5.1.xx (yum install)


php 5.1.xx 에서는 json 을 기본 지원하지 않습니다. 


그래서 다음과 같은 과정으로 설치해주면 됩니다.


먼저 php-pear가 설치 안되었다면 아래와 같이 설치합니다.


yum install php-pear


설치가 완료되면 다시 아래 명령으로 json 설치를 합니다.

pecl install json


만약 위 명령으로 설치했을때 아래와 같은 에러가 날 수 있습니다 

] # pecl install json

running: phpize

Configuring for:

PHP Api Version:         20041225

Zend Module Api No:      20050922

Zend Extension Api No:   220051025

/usr/bin/phpize: /tmp/tmpJfJzj7/json-1.2.1/build/shtool: /bin/sh: bad interpreter: 허가 거부됨

Cannot find autoconf. Please check your autoconf installation and the $PHP_AUTOCONF

environment variable is set correctly and then rerun this script.


위와 같은 에러가 난다면 수동 설치해줍니다.

아래 명령으로 json 패키지 다운로드만 받습니다. 아래 명령이 안되면 http://pecl.php.net/ 여기에서 찾아봅니다.
pecl download json

파일 다운로드가 정상으로 됐다면 json-1.2.1.tgz 파일이 보일것입니다. 아래 명령처럼 따라하시면 됩니다.
tar zxvf json-1.2.1.tgz
cd  json-1.2.1/
phpize

./configure

make

make install


설치가 성공적으로 끝났다면 


touch /etc/php.d/json.ini

echo "extension=json.so" > /etc/php.d/json.ini

killall -1 httpd


하면 위 함수 사용 가능합니다.