ここで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 mongo
およびpecl install mongo
-20090626 /に新しいmongo.soファイルを作成しました。
私はこれらすべてに少し新しいので、うまくいけばこれは修正するのが簡単な間違いです! mongoを起動して実行するだけです。
私の推測は次のいずれかでしょう:
pecl install mongo
は、ビルド済みのバイナリを実際にインストールしています(これは実際にはばかげていますが、それほど驚くことではありません)。またはphp5-dev
5.3インストールのパッケージはそのままで、pecl
は5.4バージョンの代わりにそれを見つけて使用しています。 PHP関連のパッケージリスト(dpkg -l '*php*'
)5.3パッケージが残っているかどうかを確認し、アップグレードします。何が起こっているのかを理解した後、偉大な心は同じように考え、ウォンブルが投稿した瞬間を感じました。彼の答えは正しく、私の前にあるので、それを答えとして受け入れますが、将来の参照のために、解決策はこれです:
apt-get update
apt-get install php5-dev
pecl uninstall mongo
pecl install mongo
/etc/init.d/php5-fpm restart
そしてもちろん、mongo.soはpeclが削除しない方法でphp.iniにすでに存在していたため、アップグレードが少し簡単になりました。