在 PHP53 中加载 JSON:第 0 行的 Unknown 中的 ZVAL_DELREF

在 PHP53 中加载 JSON:第 0 行的 Unknown 中的 ZVAL_DELREF

我正在尝试将 JSON 加载到 CentOS 服务器上新安装的 PHP5.3.1 中。之前有一个 PHP5.1 或接近版本,由于 WordPress 的最新版本,我不得不升级 PHP。

我尝试通过以下方式安装 JSON好吃和:

    yum install php-pecl-json

但我收到“php53-common 与 php-common 冲突”。使用--skip-broken也不起作用。

我已经手动尝试过,并通过 PEAR 获取 JSON 包:

 pear install pecl/json

在新版本的 PHP 中,某些函数被解密后,我仍然收到以下错误php-v 命令

 # php -v
 PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/json.so' - /usr/lib64/php/modules/json.so: undefined symbol: ZVAL_DELREF in Unknown on line 0
 PHP 5.3.3 (cli) (built: Mar 30 2011 13:51:54) 

之后,我手动安装了 JSON,进入文件夹并执行phpize之前./configure、make 和 make install。我还将 json.so 复制到了 /usr/lib64/php/modules。到目前为止,没有任何效果。

json.ini/etc/php.d 中规定:

extension = json.so

我确实将“extension = ”中的 json.so 替换为 /usr/lib64/php/modules/json.so。并且还输入了“/usr/lib64/php/modules”作为扩展目录进入 /etc/php.ini。

运气不好。有人能帮忙吗?

谢谢。

更新:

 # yum repolist
 Loaded plugins: fastestmirror
 Loading mirror speeds from cached hostfile
  * base: centos.mirror.lstn.net
  * epel: fedora-epel.mirror.lstn.net
  * extras: centos-distro.cavecreek.net
  * rpmforge: fr2.rpmfind.net
  * updates: mirrors.serveraxis.net
 base                                                     | 2.1 kB     00:00     
 epel                                                     | 3.7 kB     00:00     
 extras                                                   | 2.1 kB     00:00     
 rpmforge                                                 | 1.1 kB     00:00     
 updates                                                  | 1.9 kB     00:00     
 repo id      repo name                                           status
 base         CentOS-5 - Base                                     enabled:  3,535
 epel         Extra Packages for Enterprise Linux 5 - x86_64      enabled:  6,543
 extras       CentOS-5 - Extras                                   enabled:    299
 rpmforge     RHEL 5 - RPMforge.net - dag                         enabled: 10,691
 updates      CentOS-5 - Updates                                  enabled:    765
 repolist: 21,833

更新 2:JSON 已打包在 php-common 中,因此当从 REMI repo 安装 PHP 时,例如版本 5.3.6,您已经安装了 JSON。

看来在那之后,尝试通过安装 JSONpecl 安装 json或者手动输出我上面提到的错误。

谢谢。

答案1

但是我得到了“php53-common 与 php-common 冲突”的信息。使用 --skip-broken 也不起作用。

请给我们输出yum repolist

“没有运气”是指通过安装时仍然出现同样的错误pear

之后,我手动安装了 JSON,进入文件夹并在 ./configure、make 和 make install 之前执行了 phpize。我还将 json.so 复制到 /usr/lib64/php/modules

make install将自动复制扩展名/usr/lib64/php/modules,无需手动复制。

还要查看创建时间,以确保加载了正确的扩展。之后不要忘记重新加载(重新启动)Apache。

相关内容