PHP致命错误:找不到类'MongoClient'

时间:2015-02-05 06:45:39

标签: php linux apache mongodb apache2

我有一个使用Apache的站点,它只是以下代码:

<?php $m = new MongoClient(); ?>

当我尝试访问它时,我在error.log中收到错误

`PHP Fatal Error: Class 'MongoClient' not found`

以下是可能出错的设置,但我认为不是。

php -i | grep 'Configuration' =&gt; Configuration File (php.ini) Path => /etc/php5/cli | Loaded Configuration File => /etc/php5/cli/php.ini

grep 'mongo' /etc/php5/cli/php.ini =&gt; extension=mongo.so

php -i | grep 'extension' =&gt; extension_dir => /usr/lib/php5/20121212 => /usr/lib/php5/20121212

ls /usr/lib/php5/20121212/ | grep 'mongo.so' =&gt; mongo.so

我无法找到任何建议我安装错误或配置错误的内容。我使用peclpearsudo pear install -f pecl/mongosudo pecl install mongo

在过去两小时内安装了它

我已多次重启我的Apache甚至我的电脑。

那我为什么会收到错误Class 'MongoClient' not found

我在Ubuntu上。 PHP 5.5版。

编辑:我刚刚发现当我在交互模式下运行php时,MongoClient是有效的。也许它与用户权限/用户安装问题有关?

2 个答案:

答案 0 :(得分:5)

问题在于我使用php -i | grep 'Configuration'来查找.ini文件。这导致/etc/php5/cli/php.ini。回想起来,这应该是一个明显的赠品:cli表示命令行界面,基本上是解释器。我需要的是Apache正在使用的ini文件。

不幸的是,由于我无法登录www-data用户,因此没有很好的办法,但是我创建了一个包含代码的文件

<?php
  phpinfo();
?>

并且发现.ini文件位置实际上是/etc/php5/apache2/php.ini

extension=mongo.so更新 ini文件后,模块在启动时加载,所以我重新启动,现在一切正常。

答案 1 :(得分:1)

我使用以下序列

完成了它
Html.Action

并在以下网址的帮助下

http://www.w3resource.com/mongodb/install-php-driver.php