解釋

解釋

我遷移到新伺服器,現在收到此錯誤:

 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,而是仍在主控中。這是發行版/套件管理器問題。

拉斯穆斯說得很清楚:

我們還沒有刪除 json,而且我們永遠不會發布沒有內建 json 支援的 php 版本。

更多細節

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

相關內容