pecl install mongo-間違ったモジュールAPIでコンパイルし続ける


9

ここでUbuntu 12.04、nginxおよびphp5-fpmを操作する

私はmongoをphp 5.3でうまく動作させてから、ondrej / php5 ppaを追加し、php5.4に更新しました。GDとCURLの拡張は維持されましたが、mongoは維持されませんでした。この行をphp.iniファイルに再度追加しましたが、何もしませんでした。次に、起動エラーを有効にしてこれを取得しました:

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

だから、ワイルドな推測、私はfind -name 'mongo.so'ファイルを実行して20090626 /から20100525 /に移動しました...このエラーが発生しました:

PHP Startup: mongo: Unable to initialize module
Module compiled with module API=20090626
PHP    compiled with module API=20100525
These options need to match

私は、やったpecl uninstall mongopecl install mongo- 20090626に右バック新しいmongo.soファイルを作成しました/

私はこれらすべてに少し新しいので、うまくいけばこれは修正するのが簡単な間違いです!mongoを起動して実行するだけです。

回答:


12

私の推測は次のいずれかでしょう:

  • pecl install mongo実際にビルド済みのバイナリをインストールしています(これは非常に馬鹿げていますが、それほど驚くことではありません)。または
  • php5-dev5.3インストールの古いパッケージがまだ残っておりpecl、5.4バージョンの代わりにそれを見つけて使用しています。PHP関連のパッケージリスト(dpkg -l '*php*')を見て、5.3パッケージが残っているかどうかを確認し、アップグレードします。

私はこれで自分の質問に答えていました!ありがとう!
kavisiegel

それでそれはどれでしたか?
ウォンブル

2
私は更新しphp5-dev、mongoをアンインストールしてから再インストールする必要がありました。
kavisiegel

それは私にとって完璧に機能しました
Oliver Bayes-Shelton

2

何が起こっているのかを理解した後、偉大な心は同じように考え、ウォンブルが投稿した瞬間を感じました。彼の答えは正しく、私の前にあるので、それを答えとして受け入れますが、将来の参考のために、解決策はこれです:

apt-get update
apt-get install php5-dev
pecl uninstall mongo
pecl install mongo
/etc/init.d/php5-fpm restart

そしてもちろん、mongo.soは既にphp.iniにあり、peclによって削除されなかったため、アップグレードが少し簡単になりました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.