説明

説明

新しいサーバーに移行しましたが、次のエラーが発生します:

 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 をリリースすることはありません。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/

参考:

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

関連情報