Включить json_encode в PHP

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

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

Кто-нибудь знает о следующих шагах?

Ответ 1

Как в 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...

Для Ubuntu:

sudo aptitude install php5-json

Ответ 2

В моем случае я столкнулся с этим вопросом, потому что я повторно компилировал 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. Разумеется, вам необходимо иметь доступную библиотеку и, возможно, придется настраивать путь, где она находится (в зависимости от расширения и того, находится ли он по умолчанию).

Ответ 3

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

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

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

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

Ответ 4

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

yum install php70u-json
service nginx restart
service php-fpm restart