我在搭建监控系统时候出现JSON模块安装失败,PHP5.3  系统Centos6.3,安装json报错 ZVAL_DELREF 符号未知错误...

# Warning: PHP Startup: Unable to load dynamic library '/home/json/json-1.2.1/modules/json.so' - /home/json/json-1.2.1/modules/json.so: undefined symbol: ZVAL_DELREF in Unknown on line 0

经过查看是因为php版本造成,以下为解决方案:



# tar xf json-1.2.1.tgz

# cd json-1.2.1

# pwd

/root/桌面/json-1.2.1

# vim JSON_parser.c

#define ZVAL_DELREF Z_DELREF_P   //rpm安装PHP5.3不支持该符号,需要手动添加符号,然后在编译安装,前面的#号不要去掉,直接添加到文件前面就好.

                           wKioL1PDVG_gora3AAEgC2v8HF4904.jpg

# phpize  //如果没有phpize命令,那么用yum去安装php-devel包

# ./configure

# make && make install

# find / -name *json.so    //查看是否有json模块

/usr/lib64/php/modules/json.so

# vim /etc/php.ini    //添加以下行

extension=json.so

# vim /etc/php.d/json.ini     //创建json.ini文件,添加以下两行

; Enable snmp extension module

extension=json.so


测试php是否加载json模块:

1)使用php -m命令查看是否php已经加载json模块

# php -m  

json      //查看打印出来的模块

2)使用php测试页查看验证

# vim/var/www/html/index.php      //创建php浏览页,在其中添加以下内容

<?php
phpinfo();
?>

浏览器登录http://127.0.0.1/index.php   出现以下内容也证明安装加载成功

wKiom1PDWAyTX-OsAAGiycFQ8b8931.jpg