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'
=> 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'
=>
extension_dir => /usr/lib/php5/20121212 => /usr/lib/php5/20121212
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'
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
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With