Объяснение

Объяснение

Я перешел на новый сервер и теперь получаю эту ошибку:

 Fatal error: Call to undefined function json_encode() in /home/weddings/public_html/includes/common.inc on line 5105

P.S. Установка php5-json не решает проблему.

решение1

Я не могу и не должен отмечать это как дубликат, потому что этот вопрос был задан на другом сайте stackexchange, ноэтотвопрос может ответить на проблему, с которой вы столкнулись. В случае удаления вопроса в будущем, вот что в нем говорится. Обратите внимание, что все написанное после этого будет не моей работой, а @MirroredFate.

Короткий ответ:

sudo apt-get install php5-json

Тогда конечноубедитесь, что вы перезапустили Apache:

sudo service apache2 restart

Или, если вы используете PHP-FPM:

sudo service php5-fpm restart

Объяснение

Debian удалил предыдущее расширение JSON, начиная с PHP 5.5rc2, из-за конфликта лицензий.

TheJSON-лицензияесть пункт, который гласит:

Программное обеспечение должно использоваться во благо, а не во зло.

Это вызывает проблему сОпределение свободного программного обеспечения от Free Software Foundationв котором говорится:

Свобода запускать программу в любых целях (свобода 0).

FSF продолжаетспециально укажите лицензию JSON как несвободную.

Да, это выглядит немного глупо. Тем не менее, Debian удалил несовместимое расширение JSON и вместо этого предложилзамена расширениячто функционально эквивалентно.

Для ясности: сам PHP НЕ удалил JSON, онвсе еще в мастере. Это проблема дистрибутива/менеджера пакетов.

Расмус ясно дает понять:

Мы не удаляли json и никогда не выпустим версию php без встроенной поддержки json. Любые изменения в версии 5.5 обусловлены используемой вами упаковкой дистрибутива, которую мы не контролируем.

Подробнее

http://iteration99.com/2013/php-json-licensing-and-php-5-5/

http://liorkaplan.wordpress.com/2013/06/01/bye-bye-non-free-php-json-extension/

https://bugs.php.net/bug.php?id=63520

http://philsturgeon.co.uk/blog/2013/08/fud-cracker-php-55-never-lost-json-support

Связанный контент