在Ubuntu 12.04上安装和启动MongoDB for PHP

在Ubuntu 12.04上安装和启动MongoDB for PHP,ubuntu,mongodb-php,mongodb,Ubuntu,Mongodb Php,Mongodb,我已经从PECL安装了mongo扩展,并将其添加到我的php.ini文件中。运行phpinfo()时加载扩展但在尝试连接到Mongo服务器时显示此错误 Fatal error: Uncaught exception 'MongoConnectionException' with message 'Transport endpoint is not connected' in /var/www/mongo.php:2 Stack trace: #0 /var/www/mongo.php(2): M

我已经从PECL安装了
mongo
扩展,并将其添加到我的
php.ini
文件中。运行
phpinfo()时加载扩展但在尝试连接到Mongo服务器时显示此错误

Fatal error: Uncaught exception 'MongoConnectionException' with message 'Transport
endpoint is not connected' in /var/www/mongo.php:2 Stack trace: #0 /var/www/mongo.php(2):
Mongo->__construct() #1 {main} thrown in /var/www/mongo.php on line 2
phpinfo()告诉我它在本地主机的默认端口上运行

此外,我还为Ubuntu安装了
mongodb_客户端
软件包,当我从终端使用它时,它也无法连接到运行的默认服务器,尽管它可以连接到MongoLab上的服务器。PHP脚本也无法连接到MongoLab服务器

在阅读了SO和其他网站上的许多问题和答案后,我猜我的计算机上的MongoDB服务器没有打开。所有的文章都告诉我去安装MongoDB的文件夹,但是我在
/var/lib
/usr/lib
中没有任何文件夹

请帮助我让这个MongoDB正常工作,我想继续从Steve Francia的MongoDB和PHP书中学习MongoDB。这本书没有关于安装MongoDB的好教程

谢谢。

安装MongoDB(不是从软件包中,但它会让您开始):

  • 从www.mongodb.org/downloads下载2.0.4
  • tar zxvf mongodb-…
  • 更改为刚卸载的mongodb目录
  • 创建一个目录以保存您的数据:

    $ mkdir myData
    
  • 运行:

    $ bin/mongod --dbpath myData
    

您应该看到一些输出,然后“等待端口27017上的连接”,然后它将“冻结”等待您开始使用它。在这一点上,你应该能够连接到它。

我不喜欢使用Ubuntu软件包,所以我会按照@kristina所说的,MongoDB非常容易从二进制文件运行。。。但既然你似乎更喜欢套餐,那就跑吧

智能搜索mongo

您应该为mongo服务器输入一个条目。。。安装那个

如果看不到,请按照以下说明操作:


然后,您应该能够在本地连接,这也可能有助于您开始工作:

这在我的服务器上起作用:

我对/etc/mongodb.conf文件做了一个更改以启用REST:

#enable REST
rest = true
当我连接到GridFS时,它也可以工作(除了Node.js,但我认为我使用的驱动程序中有一个bug)。 总而言之,使用以下工具我没有什么可抱怨的:

sudo apt-get install mongodb-10gen

据我所知,mongodb php驱动程序并不关心如何运行mongod服务器。唯一重要的是应该有mongod实例在运行,并且您正在正确的端口连接到它。因此,请确保连接到正确的端口

为了简化mongodb的使用,您可以从mongodb下载部分使用二进制可执行文件。Ubuntu apt get安装可能会给您带来一些麻烦

对我来说,我更喜欢为我的操作系统下载现成的二进制文件。然后我将其解压缩并放入/op/文件夹中,以便mongodb可执行文件位于/opt/mongo/bin中/

在此之后,我将此文件夹添加到$PATH变量中,以便可以从任何地方运行mongodb命令。为此,我将PATH=“$PATH:/opt/mongo/bin”添加到主文件夹中的.bashrc文件中


这个方法给了我一个简单的升级方法,我只需要复制并替换/opt/mongo/bin文件夹。然后重新启动mongod服务器。

try:sudo服务mongodb startit说“mongodb:无法识别的服务”可能是mongo而不是mongodb?(我使用的是10gen repo版本,而不是Ubuntu版本。)我尝试了这两个版本,它给出了相同的错误。我认为它可能没有正确安装,但我猜部分工作,其数据库只是没有启动。