json кажется включенным, но не может запускать json_encode

Моя версия PHP – 5.1.6. У меня установлена ​​Json, следуя инструкциям:

# yum install php-devel # yum install php-pear # yum install gcc # pear install json # cd /etc/php.d # echo "extension=json.so" > json.ini # service httpd restart 

Теперь я проверяю, что Json включен, но я не могу запустить json_encode:

Проверить 1:

 [root@69-64-69-43 ~]# php -i | grep json 

Результат 1:

 /etc/php.d/json.ini, json json support => enabled json version => 1.2.1 

Проверка 2:

 [root@69-64-69-43 ~]# php -r 'var_dump(function_exists("json_encode"));' 

Результат 2:

 bool(true) 

Но при запуске:

 Fatal error: Call to undefined function json_encode() in /var/www/vhosts/ykite.com/httpdocs/fre/json.php on line 8 

Вот ссылка:

Проверьте Json: http://69.64.69.43/fre/json.php

php_info (): http://69.64.69.43/fre/info.php

Я действительно смотрел и читал много документов, но я не могу найти причину этого дела.

Я искренне ценю вашу помощь.

Cuong

Если ваш var_dump( function_exists( 'json_encode' ) ) возвращает true, в то время как ваш HTTP-запрос говорит, что функция не существует; есть только одно объяснение, которое я могу придумать: запросы CLI и HTTP используют другой php.ini. В вашем документе phpinfo( ) говорится, что он загружает json.ini, но я не вижу никакой другой ссылки на JSON.

Проверьте свои журналы, чтобы узнать, действительно ли json.so загружается по HTTP-запросу. Моя ставка заключается в том, что это не так.

От установки JSON для PHP 5

Установите json – это было на самом деле сложнее, чем ожидалось. Я предположил, что смогу установить это через pear . По-видимому, пакет PEAR Services_JSON был разработан, но он никогда не был принят в официальный репозиторий. Трюк вместо этого заключается в использовании пакета PECL json . Это было так же просто, как запустить pecl install json и наблюдать за компилятором. Когда это будет сделано, у вас должен быть файл json.so в вашем каталоге модулей PHP. (Mine – /usr/lib/php/modules/ .)

Конечно, это старая тема, но, возможно, кто-то столкнется с этим, как в августе 2015 года. Я исправил это, изменив путь к папке расширений в php.ini. Он был как-то установлен на «./», а не / usr / lib64 / php / modules /