Может ли кто-нибудь посоветовать, как включить функцию 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...
Для Убунты:
sudo aptitude install php5-json
php -v
) и какой вывод php -r 'echo json_encode(true);'
?
- person Fabio; 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
. Конечно, вам нужно иметь в наличии саму библиотеку и, возможно, придется настроить путь, по которому она находится (в зависимости от расширения и от того, находится ли она в пути «по умолчанию»).
Для php 7
я сделал это, чтобы установить json (после нескольких часов борьбы):
yum install php70u-json
service nginx restart
service php-fpm restart
В 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.