PHP 5.3.8, JSON & CentOS 6 - PullRequest
       23

PHP 5.3.8, JSON & CentOS 6

2 голосов
/ 02 ноября 2011

Мы работаем с CentOS 6 и PHP 5.3.8 (как модуль apache), который должен иметь JSON как часть его ядра (как мне сказали). Глядя на # php -i в командной строке, я могу видеть в Configure Command '--enable-json=shared' ... great!

Однако, глядя на php_info () на веб-странице, команда Configure показывает '--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: неопределенный символ: ZVAL_DELREF в поле Неизвестно в строке 0

Извините, если это глупый вопрос, но кто-нибудь знает, что здесь происходит, и не могли бы вы указать мне правильное направление, как это исправить, чтобы JSON начал работать?

Большое спасибо

Ответы [ 3 ]

4 голосов
/ 18 ноября 2011

Думал, что я найду решение. Установка 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 снова работает. Надеюсь, это поможет кому-то еще.

Спасибо

2 голосов
/ 17 апреля 2012

скачать 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

1 голос
/ 13 декабря 2011
  1. Войти в SSH
  2. Make 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

...