Php

在 PHP53 中載入 JSON:第 0 行未知中的 ZVAL_DELREF

  • November 27, 2011

我正在嘗試將 JSON 載入到 CentOS 伺服器上新安裝的 PHP5.3.1 中。以前有一個 PHP5.1 或附近,由於 WordPress 的最新版本,我不得不升級 PHP。

我嘗試通過yum安裝 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,進入文件夾並在**./configure、make 和 make install之前進行了phpize**。我還將 json.so 複製到 /usr/lib64/php/modules。到目前為止沒有任何工作。

/etc/php.d 中的json.ini聲明:

extension = json.so

我確實用 /usr/lib64/php/modules/json.so 替換了“extension =”中的 json.so。並且還將“/usr/lib64/php/modules”作為extension_dir輸入/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 儲存庫安裝 PHP 時,例如,版本 5.3.6,您已經安裝了 JSON。

似乎在那之後,嘗試通過pecl install json或手動安裝 JSON 將輸出我上面所說的錯誤。

謝謝你。

但我得到一個“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。

引用自:https://serverfault.com/questions/296879