PHP 5.3.8,JSON& CentOS 6

时间:2011-11-02 11:53:36

标签: php json apache centos centos6

我们正在运行CentOS 6和PHP 5.3.8(作为apache模块),它应该将JSON作为其核心的一部分(我被告知)。在命令行上查看# php -i,我可以在配置命令'--enable-json=shared'下看到...很棒!

但是,在网页上查看php_info()配置命令会显示'--disable-json'

没问题,我想,我只是使用pecl安装它:

# yum update php
# yum install php-pear
# yum install gcc
# pecl install json
# service httpd restart

成功,我认为应该这样做。但是php -m显示:

  

PHP警告:PHP启动:无法加载动态库'/usr/lib64/php/modules/json.so' - /usr/lib64/php/modules/json.so:未定义符号:ZVAL_DELREF in Unknown on line 0

道歉,如果这是一个愚蠢的问题,但有人知道这里发生了什么,你能指出我正确的方向如何解决这个问题,以便JSON开始工作?

非常感谢

3 个答案:

答案 0 :(得分:4)

以为我会跟进解决方案。 PECL安装似乎与PHP 5.3.8冲突,所以经过一些研究和一些建议我玩弄了以下的想法:

# yum remove php
# yum install php

然而,经过进一步的建议后改为:

# yumdownloader php-common
# rpm -Uvh --force php-common*.rpm
# service httpd reload
# rm php-common*.rpm

这就是诀窍,JSON现在再次运作。希望这有助于其他人。

由于

答案 1 :(得分:2)

从PECL下载json-1.2.1.tgz

enter code heretar zxvf json-1.2.1.tgz
cd json-1.2.1
vi JSON_parser.c

查找ZVAL_DELREF替换为Z_DELREF_P (你可以在3个地方找到) 并保存文件

然后

phpize
./configure
make
make install

你可以得到你的json.so 别忘了添加到php.ini

答案 2 :(得分:1)

  1. 登录SSH
  2. 制作tmp和var / tmp exec

    mount -v -o remount,exec /tmp
    mount -v -o remount,exec /var/tmp

  3. 不要继续安装JSON

    pecl install json

  4. 最后,再次制作tmp和var / tmp noexec
    mount -v -o remount,noexec /tmp
    mount -v -o remount,noexec /var/tmp