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:
sudo apt-get install php5-dev make php-pear
sudo pecl install mongo
sudo echo "extension=mongo.so" | sudo tee /etc/php5/mods-available/mongo.ini
The easiest to install the mongoDB driver for php5 in ubuntu is using the command :
sudo apt-get install php5-mongo
Attention, the driver is correctly installed but not loaded yet, so should absolutly restart the server, if using apache should do :
sudo service apache2 restart
There is also a good way to install the mongo DB for PHP. I have ubuntu 14.04LTS.
open synaptic package manager and search "mongo"
select these packages to install.
click apply to install the packages.
Now restart you apache2 using this command.
sudo service apache2 restart
create the PHP file with name mongo-test.php and paste this code there.
<?php
// connect to mongodb
$m = new MongoClient();
echo "Connection to database successfully";
// select a database
$db = $m->mydb;
echo "Database mydb selected";
?>
test this URL http://localhost/mongo-test.php
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 do new MongoClient
when the extension is not enabled it hits your autoloaded which tries to include a file called <classname>.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.