pecl没有在php CLI模式下工作(涉及Gearman中的mongoDB)

时间:2010-08-24 14:24:40

标签: mongodb php pecl gearman

出于测试目的,我在本地主机上运行齿轮手。所以我从php命令行运行gearman worker.php文件。当我在正常的apache模式下测试它时,mongoDB工作正常,但是当它从gearman worker文件运行时,我得到错误“致命错误:找不到类'Mongo'”。现在Mongo类来自pecl和php.ini中的mongo.so扩展。是的,试图弄清楚为什么从CLI运行的php文件是不同的。它是否使用单独的php.ini文件?

3 个答案:

答案 0 :(得分:5)

您可以通过执行php --ini来检查CLI版本正在加载哪些.ini文件。如果您的PHP是由发行版提供的,那么它很可能有两个单独的.ini集,一个用于基于Web,一个用于CLI。您也可以在phpinfo()在线运行时获得等效信息。

要强制它加载特定的.ini,您可以使用php -c /path/to/file.ini

答案 1 :(得分:0)

一个简单的查找/ -name php.ini为我回答了这个问题。所以是的,有一个单独的php.ini文件。我需要添加行extension = mongo.so。

答案 2 :(得分:0)

听起来你要么加载不同的ini文件,要么你的机器上安装了多个php实例,而apache使用的是另一个。制作脚本v.php:

<?php phpinfo();

然后尝试从CLI运行它,然后通过localhost查看它。 EG:

  

php v.php

  

http://localhost/v.php