Я пытаюсь загрузить JSON в недавно установленный PHP5.3.1 на сервере CentOS. Раньше был PHP5.1 или близкий к нему, и из-за последней версии WordPress мне пришлось обновить PHP.
Я пытался установить JSON через ням с участием:
yum install php-pecl-json
Но я получаю сообщение «php53-common конфликтует с php-common». С участием - пропустить-сломанный тоже не работает.
Я пробовал вручную и получил пакет JSON через PEAR:
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, сделать и сделать установку. Я также скопировал json.so в / usr / lib64 / php / modules. Пока ничего не работает.
В json.ini в /etc/php.d говорится:
extension = json.so
Я заменил json.so с "extension =" на /usr/lib64/php/modules/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, поэтому при установке PHP из репозитория REMI, например, версии 5.3.6, у вас уже будет установлен JSON.
Похоже, что после этого, пытаясь установить JSON через pecl установить json или вручную выведет указанную выше ошибку.
Спасибо.
Но я получаю сообщение «php53-common конфликтует с php-common». С --skip-broken тоже не работает.
Пожалуйста, предоставьте нам результат yum repolist
?
"Не повезло" означает, что при установке через pear
?
После этого я установил JSON вручную, вошел в папку и выполнил phpize до ./configure, make и make install. Я также скопировал json.so в / usr / lib64 / php / modules
make install
скопирует расширение в /usr/lib64/php/modules
автоматически, нет необходимости копировать вручную.
Также посмотрите на созданное время, чтобы убедиться, что вы загрузили правильное расширение. Не забудьте после этого перезагрузить (перезапустить) Apache.