2

我们正在运行 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:未定义符号:第 0 行未知中的 ZVAL_DELREF

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

非常感谢

4

3 回答 3

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 现在又可以工作了。希望这对其他人有帮助。

谢谢

于 2011-11-18T18:20:46.697 回答
2

json-1.2.1.tgz从 PECL下载

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

于 2012-04-17T08:57:21.937 回答
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

于 2011-12-13T04:17:13.140 回答