在 Ubuntu 13.10 (saucy) 中安装 Mongodb PHP 扩展的最简单方法?
Posted
技术标签:
【中文标题】在 Ubuntu 13.10 (saucy) 中安装 Mongodb PHP 扩展的最简单方法?【英文标题】:Easiest way to install Mongodb PHP extension in Ubuntu 13.10 (saucy)? 【发布时间】:2014-04-22 22:35:44 【问题描述】:我使用的是 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 repo 有问题吗?我如何查看 ubuntu 存储库并找到它使用的版本或为什么不包括 MongoClient.php
。我使用“ubuntu:saucy
”泊坞窗图像作为我的基础,我认为它默认包含 Universe。
【问题讨论】:
您不必包含 PHP 脚本即可使用 MongoDB。打开phpinfo()
并验证您的模块是否已加载。请记住,不同的 PHP 环境使用不同的php.ini
s。 (/etc/php5/fpm/php.ini
)
apt-get 是不够的,因为每个 PHP 设置都不同
另外 php5-mongo 可能是一个非常旧的驱动版本,你应该使用 pecl install mongo
【参考方案1】:
在 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
【讨论】:
这条线sudo echo "extension=mongo.so" | tee /etc/php5/mods-available/mongo.ini
对我来说失败了。它说执行tee
时权限被拒绝但是我将其更改为sudo echo "extension=mongo.so" | sudo tee /etc/php5/mods-available/mongo.ini
如果你想在 apache 和 cli 中加载这个模块,你需要正确地符号链接它。 ln -s /etc/php5/mods-available/mongo.ini /etc/php5/cli/mongo.ini
和 apache 的另一个符号链接【参考方案2】:
在 ubuntu 中安装 php5 的 mongoDB 驱动程序最简单的方法是使用以下命令:
sudo apt-get install php5-mongo
注意,驱动已经正确安装但还没有加载,所以如果使用apache应该绝对重启服务器:
sudo service apache2 restart
【讨论】:
谢谢,虽然您的说明适用于今天的 Ubuntu,但它们不适用于 Ubuntu 13.10 (saucy)。【参考方案3】:还有一个安装 mongo DB for PHP 的好方法。我有 ubuntu 14.04LTS。
open synaptic package manager and search "mongo"
选择这些软件包进行安装。
php-horde-mongo php-mongo单击应用安装软件包。
现在使用这个命令重启你的 apache2。
sudo service apache2 restart
测试 mongo
创建名为 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";
?>
测试这个网址http://localhost/mongo-test.php
【讨论】:
在 Ubuntu 15.04 上,我使用软件中心找到了 php-horde-mongo 和 php5-mongo。安装后,我重新启动了 Apache。它工作得很好。也感谢您提供测试代码:) 欢迎。 Synaptic 和软件中心使用相同的软件包存储库。 Synaptic 是更高级的工具,而软件中心则简单易用。【参考方案4】:这似乎是 Ubuntu 中的打包问题。
您是否也通过apt-get
安装了PHP5-fpm?您安装 PHP5 的方式与 php5-mongo 包尝试更新的 php.ini 文件之间似乎存在脱节。
至于include(MongoClient.php): failed to open stream
错误;这是因为你的自动加载器。
当您在未启用扩展程序时执行new MongoClient
时,它会触发您的自动加载,它会尝试包含一个名为<classname>.php
的文件
【讨论】:
以上是关于在 Ubuntu 13.10 (saucy) 中安装 Mongodb PHP 扩展的最简单方法?的主要内容,如果未能解决你的问题,请参考以下文章
在 Ubuntu13.10 服务器中安装 Munin(监视工具)
ubuntu 13.10 中的 ns2 allinone 安装错误