![在 PHP53 中加载 JSON:第 0 行的 Unknown 中的 ZVAL_DELREF](https://linux22.com/image/557328/%E5%9C%A8%20PHP53%20%E4%B8%AD%E5%8A%A0%E8%BD%BD%20JSON%EF%BC%9A%E7%AC%AC%200%20%E8%A1%8C%E7%9A%84%20Unknown%20%E4%B8%AD%E7%9A%84%20ZVAL_DELREF.png)
我正在尝试将 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。