我遷移到新伺服器,現在收到此錯誤:
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