简体   繁体   中英

PHP Fatal Error: Class 'MongoClient' not found

I have a site using Apache that is just the following code:

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

and when I try to access it, I get the error in error.log

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

The following are settings which might be wrong, but I don't think are.

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

grep 'mongo' /etc/php5/cli/php.ini => extension=mongo.so

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

ls /usr/lib/php5/20121212/ | grep 'mongo.so' ls /usr/lib/php5/20121212/ | grep 'mongo.so' => mongo.so

I haven't been able to find anything to suggest I installed it wrong or have it wrongly configured. I installed it within the past two hours using pecl and pear ( sudo pear install -f pecl/mongo and sudo pecl install mongo )

I've restarted my Apache and even my computer multiple times.

So why am I getting the error Class 'MongoClient' not found ?

I'm on Ubuntu. PHP version 5.5.

Edit: I've just discovered that MongoClient is valid when I run php in interactive mode. Perhaps it has to do with a user permission/user installation issue?

The problem was that I was using php -i | grep 'Configuration' php -i | grep 'Configuration' to find the .ini file. This lead to /etc/php5/cli/php.ini . In retrospect, this should have been an obvious giveaway: cli means command line interface, basically for the interpreter. What I needed was the ini file that Apache was using.

Unfortunately, there was no great way to do this as I couldn't log into the www-data user, but I made a file that had the code

<?php
  phpinfo();
?>

and that revealed that the .ini file location was actually /etc/php5/apache2/php.ini .

Once I updated that ini file with extension=mongo.so , the module was loaded at startup, so I restarted and everything is working now.

i have done it using following sequence

sudo apt-get install mongodb

sudo service mongodb start

mongo

sudo pecl install mongo

cd /build/buildd/php5-5.5.9+dfsg/pear-build-download

sudo tar zxvf mongo-1.6.8.tgz

cd mongo-1.6.8

sudo phpize

cd ./configure

sudo make install

sudo gedit /etc/php5/apache2/php.ini

add extension=mongo.ini inphp.ini

sudo gedit/etc/php5/apache2/conf.d/mongodb.ini

add extension=mongo.so

sudo service apache2 restart

and by the help of following url

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM