Включить json_encode в PHP

Может ли кто-нибудь посоветовать, как включить функцию json_encode в PHP?

У меня чистая установка Centos 5.6 и я только что установил Virtualmin.

Кто-нибудь знает дальнейшие действия?


person Rob    schedule 06.09.2011    source источник
comment
Какую версию PHP вы установили?   -  person ace    schedule 06.09.2011
comment
В чем проблема, когда вы вызываете функцию json_encode()? Какое сообщение об ошибке вы получаете?   -  person Pavel S.    schedule 06.09.2011


Ответы (4)


Как в http://www.php.net/manual/en/json.requirements.php

Требования

Для использования этих функций установка не требуется; они являются частью ядра PHP.

Просто PHP >= 5.2.0

Изменить: видел в комментарии также это

В RHEL5/CentOS5 добавьте репозиторий EPEL (http://fedoraproject.org/wiki/EPEL).

После этого установка так же проста, как:

sudo yum install php-pecl-json

Не знаю, относится ли это к вашему вопросу, у меня нет сервера Centos...

Для Убунты:

sudo aptitude install php5-json
person Fabio    schedule 06.09.2011
comment
Если я запускаю эту команду, она возвращает сообщение: ошибка php53-common конфликтует с php-common. - person Rob; 06.09.2011
comment
Как я уже сказал, я не знаю, действительно ли вам это нужно, это просто намек. Пожалуйста, обновите свой вопрос, указав более подробную информацию о том, какая у вас версия php (выход php -v) и какой вывод php -r 'echo json_encode(true);'? - person Fabio; 06.09.2011
comment
Извините, моя ошибка - ошибка школьника. PHP 5.1!! Теперь все в порядке. - person Rob; 06.09.2011

В моем случае я столкнулся с этим вопросом, потому что я перекомпилировал PHP будет ./configure --disable-all, а затем индивидуально добавлял необходимые мне расширения. В случае json_encode() это, конечно же, включено в расширение JSON. Чтобы включить это расширение, добавьте параметр --enable-json в команду configure, т. е.:

./configure --disable-all --enable-json ...

(«...» относится к тому факту, что у вас могут быть другие расширения, которые вы хотите включить.)

В общем, любое расширение PHP можно включить, включив параметр --with-extname или --enable-extname (где «extname» — это имя расширения). Вы можете выяснить, какой из этих двух синтаксисов использовать, введя ./configure --help | grep extname. Конечно, вам нужно иметь в наличии саму библиотеку и, возможно, придется настроить путь, по которому она находится (в зависимости от расширения и от того, находится ли она в пути «по умолчанию»).

person robguinness    schedule 15.02.2013

Для php 7 я сделал это, чтобы установить json (после нескольких часов борьбы):

yum install php70u-json
service nginx restart
service php-fpm restart
person d-_-b    schedule 25.06.2017
comment
сначала установлен на 2-м, выдает ошибку. Не удалось перезапустить nginx.service: модуль не найден. - person Rahul Tathod; 27.09.2018

В CenotOS и других системах *nix, даже если у вас PHP скомпилирован с --disable-json, не все может быть потеряно. Первым делом, конечно же, нужно проверить вывод вашего phpinfo(); и найти вхождения json. Если вы видите, что поддержка json включена, то, конечно, у вас включено расширение json, но если нет, посмотрите, есть ли у вас /etc/php.d/json.ini в списке < em>Проанализированы дополнительные файлы .ini. Если вы это сделаете, то этот файл может выглядеть так:

; Включить модуль расширения json
;extension=json.so

Раскомментируйте вторую строку и перезапустите Apache. Если Apache запустился без ошибок, снова проверьте свой phpinfo() и посмотрите, включило ли это ваше расширение json. Если да, то все готово, если нет, возможно, вам придется найти каталог, в котором находятся ваши расширения php, и если вы видите там json.so, отредактируйте последнюю строку, включив в нее полный путь к этому файлу и снова перезапустите Apache. Если у вас нет файла json.so с другими файлами расширения php, вам, вероятно, придется перекомпилировать это одно расширение (вам не нужно перекомпилировать весь PHP, но вы, безусловно, можете, на этот раз с --enable-json), а затем повторите попытку.

Кроме того, если у вас нет проанализированных дополнительных файлов .ini, вы можете попробовать добавить это расширение в свой основной php.ini, который обычно находится в /etc/php.ini.

person Derek Gogol    schedule 02.10.2014