0

私は Ubuntu 12.04 LTS を使用しており、PHP 5.4 が必要だったので、Ondřej Surý の(php5-oldstable) パッケージを使用しています。

phpinfo と CLI の両方で、JSON が有効になっていることが示されます。

#php -i | grep -i json
json
json support => enabled
json version => 1.2.1

私のアプリケーションはほとんど動作します。しかし、定期的に (約 10 回に 1 回のペースで) PHP エラーが発生します。これは断続的にのみ発生します。

 PHP Startup: Unable to load dynamic library '/usr/lib/php5/20100525+lfs/json.so'
 - /usr/lib/php5/20100525+lfs/json.so: cannot open shared object file: 
 No such file or directory "json.so"

これを修正するにはどうすればよいですか?

4

3 に答える 3

3

可能性のある犯人は(メールで回答したように)、構成ファイルのどこかにjson拡張機能をロードしていることだと思います。

JSON 拡張機能は、PHP 5.4 のコアでコンパイルされるため、手動でロードしないでください。

次のものがないことを確認してください。

  1. json.ini/etc/php5/{mods-available}以前の PHP 5.5 インストールの残りのどこかに

  2. 上記のスクリプトから JSON 拡張機能をロードしていません。たとえば、dl( json.so) はありません。

  3. php5-fpmメジャー バージョンを変更するときは、Apache2 を停止してから開始したことを確認してください ( にも同じことが当てはまります)。json-cこの症状は、以前の PHP がロードされたパッケージ (この場合、ベースの JSON 拡張機能を備えた PHP 5.5) でスタックした Apache2 スレッドがあったことを示している可能性があります。

于 2013-09-17T08:05:12.023 に答える
0

json 拡張機能が の出力に読み込まれていると言っているのでphpinfo()、バグに対処している可能性があります。モジュールファイルが実際にファイルシステムにあるかどうかを確認しましたか?

次のオプションがあります。

  1. Apache 2.4 でソースから PHP 5.4 をコンパイルする
  2. PHP 5.5 + Apache 2.4 を提供する同じリポジトリの安定版にアップグレードします。
  3. Ubuntu の PPA で Ondrejに関するバグを送信し、解決されるまで待ちます。

詳細については、debphp サイトを確認してください。

バグの送信は必須です。バグが実際のものである場合は、すべてのユーザーに対して修正する必要があるためです。下位互換性、廃止された機能などの移行ガイドラインと競合しない場合は、最初にオプション 2 を使用できます。だからそれをチェックして決めてください。

また、これを行う必要があるマシンによっても大きく異なります。それが重要な実動サーバーである場合、変更バージョンをコンパイルしたくない場合があります。バグを報告して、パッケージのメンテナーがこれについて何を言わなければならないかを見てください。

また、問題が解決したら、ここに返信を書いてください。私はそれが何であるかについて非常に興味があり、できればそうだったことを願っています。:D

于 2013-09-16T09:09:18.300 に答える