Может ли кто-нибудь посоветовать, как включить функцию json_encode в PHP?
У меня есть чистая установка Centos 5.6 и только что установил Virtualmin.
Кто-нибудь знает о следующих шагах?
Может ли кто-нибудь посоветовать, как включить функцию json_encode в PHP?
У меня есть чистая установка Centos 5.6 и только что установил Virtualmin.
Кто-нибудь знает о следующих шагах?
Как в 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
В моем случае я столкнулся с этим вопросом, потому что я повторно компилировал 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
. Разумеется, вам необходимо иметь доступную библиотеку и, возможно, придется настраивать путь, где она находится (в зависимости от расширения и того, находится ли он по умолчанию).
В 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.
Для php 7
Я сделал это, чтобы установить json (после нескольких часов боев):
yum install php70u-json
service nginx restart
service php-fpm restart