Я перешел на новый сервер и теперь получаю эту ошибку:
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