テストの目的で、ローカルホストでギアマンを実行しています。そこで、phpコマンドラインからgearmanworker.phpファイルを実行します。これを通常のapacheモードでテストすると、mongoDBは問題なく動作しますが、gearman workerファイルから実行すると、「致命的なエラー:クラス'Mongo'が見つかりません」というエラーが発生します。これで、Mongoクラスはphp.iniのpeclとmongo.so拡張子から取得されます。そうですね、CLIから実行されるphpファイルが異なる理由を理解しようとしています。別のphp.iniファイルを使用していますか?
1942 次
3 に答える
5
を実行すると、CLIバージョンによってロードされている.iniファイルを確認できますphp --ini
。PHPがディストリビューションによって提供された場合、2つの別個の.iniセット(1つはWebベース用、もう1つはCLI用)を持つ可能性が非常に高くなります。phpinfo()
オンラインで実行しているときからも同等の情報を取得できます。
特定の.iniを強制的にロードするには、を使用できますphp -c /path/to/file.ini
。
于 2010-08-24T14:29:05.687 に答える
0
簡単な検索/-namephp.iniがその質問に答えてくれました。そうです、別のphp.iniファイルがあります。行extension=mongo.soを追加する必要がある場所。
于 2010-08-24T14:41:37.593 に答える
0
異なるiniファイルをロードしているか、マシンにphpの複数のインスタンスがインストールされていて、apacheが別のインスタンスを使用しているようです。スクリプトv.phpを作成します。
<?php phpinfo();
次に、CLIから実行してから、ローカルホスト経由で表示してみてください。例えば:
php v.php
と
于 2010-08-24T14:41:51.033 に答える