2

我已经mongo从 PECL 安装了扩展并将其添加到我的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();告诉我它在默认端口的 localhost 上运行。

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

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

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

谢谢。

4

4 回答 4

3

安装 MongoDB(不是从一个包,但它会让你开始):

  • 从 www.mongodb.org/downloads 下载 2.0.4。
  • tar zxvf mongodb-...
  • 切换到刚刚解压的 mongodb 目录。
  • 创建一个目录来保存您的数据:

    $ mkdir myData
    
  • 跑:

    $ bin/mongod --dbpath myData
    

您应该会看到一些输出,然后是“等待端口 27017 上的连接”,然后它会“冻结”等待您开始使用它。此时您应该能够连接到它。

于 2012-04-06T17:17:02.610 回答
2

我更喜欢不使用 Ubuntu 包,所以我会按照@kristina 所说的那样,从二进制文件中运行 MongoDB 非常容易……但既然您似乎更喜欢一个包,请运行……

资质搜索 mongo

你应该为mongo-server发送一个条目...安装它。

如果您没有看到它,请按照以下说明操作:http ://www.mongodb.org/display/DOCS/Ubuntu+and+Debian+packages

然后您应该能够在本地连接,这也可以帮助您开始: http: //learnmongo.com/posts/mongodb-php-install-and-connect/

于 2012-04-06T17:26:38.653 回答
2

这适用于我的服务器:

http://www.mongodb.org/display/DOCS/Ubuntu+and+Debian+packages

我对 /etc/mongodb.conf 文件进行了一项更改以启用 REST:

#enable REST
rest = true

GridFS 在我连接到它时也可以工作(Node.js 除外 - 但我认为我正在使用的驱动程序存在错误)。总而言之,我没有什么可以抱怨使用以下内容的:

sudo apt-get install mongodb-10gen
于 2012-04-10T18:42:00.807 回答
1

据我所知,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 服务器。

于 2012-10-07T16:43:12.400 回答