たちはこっちに同じ問題を抱えていました。ストーリーとその修正方法は次のとおりです。
私たちのマシンでは、PHP 5.6を稼働させようとしていて、couchbase用のPHP拡張モジュールをコンパイルしたかったのです。同じマシンにPHP 7.1とPHP 7.0をインストールしました。 PECLは、extension_dir
で定義されたパスの中になかった/usr/lib/php/20151012/couchbase.so
にコンパイルしたファイルを入れました。PHP 5.6でロードするために絶対に設定しなければならなかったので、あなたと同様のエラーが発生しました。 20151012
というフォルダの名前はPHP APIのバージョンを表し、通常は各PHPのバージョンによって異なります。とにかく後のPHPバージョンを使用していないので、PHP 7.1と7.0を削除してもう一度やり直しました。今度はPHP 5.6に対して正しくコンパイルし、soファイルを/usr/lib/php/20131226/couchbase.so
に保存しました。
かいつまん:
拡張子をコンパイル、PECLは/usr/lib/php/20131226
のようなフォルダに格納します。最後のfolder-nameは、この拡張がコンパイルされるPHP APIを表します。お使いのバージョンをphp -i | grep 'PHP API'
に電話して確認し、一致するかどうか確認してください。
あなたもインストールされている複数のPHPのバージョンを持っているし、それらを維持したい場合は、この答えは役に立つかもしれません:pecl installs for previous php version
役立つ先端
PHPがすべての接頭辞であるextension_dir
という変数を持っています相対パスを使用してロードされた拡張機能へのパス。ファイル名を設定するだけでモジュールをロードすると(PHPに接頭辞を追加させる)、これらの問題は起こってはいけません。 zend_extension
としてロードされた拡張機能の絶対パスを使用する必要があることに注意してください。 xdebug ...