我在搭建监控系统时候出现JSON模块安装失败,PHP5.3 系统CentOS 6.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不支持该符号,需要手动添加符号,然后在编译安装,前面的#号不要去掉,直接添加到文件前面就好.
# 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 出现以下内容也证明安装加载成功