解释

解释

我迁移到了新服务器,现在收到此错误:

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

PS php5-json 安装不能解决问题。

答案1

我不能也不应该将其标记为重复,因为它是在另一个 stackexchange 网站上询问的,但是这个问题可能会回答您遇到的问题。如果将来删除了该问题,以下是它的内容。请注意,此后写的所有内容都不是我的作品,而是@MirroredFate的作品。

简短回答:

sudo apt-get install php5-json

那么当然确保重新启动 Apache

sudo service apache2 restart

或者如果你使用 PHP-FPM:

sudo service php5-fpm restart

解释

由于许可证冲突,Debian 从 PHP 5.5rc2 开始删除了以前的 JSON 扩展。

JSON 许可证有一个条款规定:

该软件应用于善事,而非恶事。

这会导致问题自由软件基金会对自由软件的定义其中指出:

自由运行程序,用于任何目的(自由 0)。

FSF 继续明确将 JSON 许可证列为非自由许可证

是的,这看起来有点傻。不过,Debian 已经删除了不兼容的 JSON 扩展,而是提供了一个替换扩展功能上是等效的。

需要明确的是:PHP 本身并没有删除 JSON,而是仍在掌握中。这是一个发行版/包管理器问题。

Rasmus 说得很清楚

我们并没有删除 json,我们也永远不会发布没有内置 json 支持的 php 版本。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

相关内容