I'm using Ubuntu 13.10 (saucy salamander) and I was hoping that sudo apt-get install php5-mongo
would be enough to get the mongodb database driver installed.
No such luck though. I'm using php5-fpm, so firstly I found I also needed to do php5enmod mongo
but even with that, I get a error:
include(MongoClient.php): failed to open stream: No such file or directory
Instead, to install I have to do the following (which uses a lot more disk space):
sudo apt-get install php5-dev make php-pear
sudo pecl install mongo
sudo echo "extension=mongo.so" | tee /etc/php5/mods-available/mongo.ini
My question is why isn't sudo apt-get install php5-mongo
enough? Is it a problem with the Ubuntu repo? How can I look into the ubuntu repositories and find what version it uses or why MongoClient.php
isn't included. I'm using the "ubuntu:saucy
" docker image as my base and it includes universe by default I think.
In Ubuntu 14.04,
sudo apt-get install php5-mongo
results in a fully working mongo PHP extension. So I guess there is just a packaging problem in Ubuntu 13.10 which causes the problem.Solution: Use Ubuntu 14.04 LTS instead of Ubuntu 13.10.
But, if you have to use Ubuntu 13.10, don't use the
php5-mongo
Ubuntu package, instead install the mongo extension via pecl:The easiest to install the mongoDB driver for php5 in ubuntu is using the command :
Attention, the driver is correctly installed but not loaded yet, so should absolutly restart the server, if using apache should do :
This seems to be a packaging problem in Ubuntu.
Did you install PHP5-fpm via
apt-get
too? It looks like there is a disconnect between how you installed PHP5 and which php.ini file the php5-mongo package is trying to update.As for the
include(MongoClient.php): failed to open stream
error; it is because of your autoloader. When you donew MongoClient
when the extension is not enabled it hits your autoloaded which tries to include a file called<classname>.php
There is also a good way to install the mongo DB for PHP. I have ubuntu 14.04LTS.
select these packages to install.
click apply to install the packages.
Now restart you apache2 using this command.
Test the mongo
create the PHP file with name mongo-test.php and paste this code there.
test this URL http://localhost/mongo-test.php