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