我正在使用Ubuntu 13.10(saucy salamander),我希望sudo apt-get install php5-mongo
足以安装mongodb数据库驱动程序。
虽然没有这样的运气。我使用的是php5-fpm,所以首先我发现我还需要php5enmod mongo
,但即使这样,我也会收到错误:
include(MongoClient.php): failed to open stream: No such file or directory
相反,要安装,我必须执行以下操作(使用更多磁盘空间):
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
我的问题是为什么不足以sudo apt-get install php5-mongo
?这是Ubuntu回购的问题吗?如何查看ubuntu存储库并查找它使用的版本或为什么MongoClient.php
不包括在内。我正在使用" ubuntu:saucy
"我认为docker image是我的基础,它默认包含了Universe。
答案 0 :(得分:35)
在Ubuntu 14.04中,sudo apt-get install php5-mongo
导致完全正常的mongo PHP扩展。所以我猜Ubuntu 13.10中只有一个打包问题会导致问题。
解决方案:使用Ubuntu 14.04 LTS而不是Ubuntu 13.10。
但是,如果 使用Ubuntu 13.10,请不要使用php5-mongo
Ubuntu软件包,而是通过pecl安装mongo扩展:
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
答案 1 :(得分:34)
在ubuntu中最容易安装php5的mongoDB驱动程序是使用以下命令:
sudo apt-get install php5-mongo
注意,驱动程序已正确安装但尚未加载,因此如果使用apache,应该绝对重新启动服务器:
sudo service apache2 restart
答案 2 :(得分:3)
还有一种很好的方法来安装mongo DB for PHP。我有ubuntu 14.04LTS。
open synaptic package manager and search "mongo"
选择要安装的这些包。
单击“应用”以安装软件包。
现在使用此命令重启apache2。
sudo service apache2 restart
使用名称mongo-test.php创建PHP文件并在此处粘贴此代码。
<?php
// connect to mongodb
$m = new MongoClient();
echo "Connection to database successfully";
// select a database
$db = $m->mydb;
echo "Database mydb selected";
?>
答案 3 :(得分:2)
这似乎是Ubuntu中的打包问题。
您是否也通过apt-get
安装了PHP5-fpm?看起来PHP5的安装方式与php5-mongo软件包试图更新的php.ini文件之间存在脱节。
至于include(MongoClient.php): failed to open stream
错误;这是因为你的自动加载器。
如果您在未启用扩展程序时执行new MongoClient
,则会点击自动加载,并尝试包含名为<classname>.php
的文件