0

我正在为我的本地服务器使用带有 AMPPS 的 ubuntu 14.04,我已经成功地启用了 mongoDB 扩展,并且我已经在 rockmongo 中创建了数据库和集合,甚至通过使用 mongo 的终端。

但是当我尝试在我的代码中使用 mongodb 时,我收到以下错误消息:

( ! ) Fatal error: Uncaught exception 'MongoConnectionException' with message 'Failed to connect to: localhost:27017: Connection refused' in /usr/local/ampps/www/TMongo.php on line 3
( ! ) MongoConnectionException: Failed to connect to: localhost:27017: Connection refused in /usr/local/ampps/www/TMongo.php on line 3

这是我尝试测试 mongodb 的代码和平:

<?php
   // connect to mongodb
   $m = new MongoClient();
   echo "Connection to database successfully";

   // select a database
   $db = $m->laravel;
   echo "Database mydb selected";
   $collection = $db->laravel;
   echo "Collection selected succsessfully";

   $cursor = $collection->find();
   // iterate cursor to display title of documents

   foreach ($cursor as $document) {
      echo $document["title"] . "\n";
   }
?>

我已经搜索并尝试了一些方法来杀死所有 mongodb 进程并重新启动它......但它们都不适合我。

当我跑步时:ps -eF | grep 'mongo\|PID' 我得到:

UID        PID  PPID  C    SZ   RSS PSR STIME TTY          TIME CMD
root      3516  3331  0 223796 118188 3 12:42 pts/22   00:00:01 /usr/local/ampps/mongodb/bin/mongod --journal --pidfilepath=/usr/local/ampps/mongodb/data/pid --config=/usr/local/ampps/mongodb/mongo.conf
server    7091 25150  0  2939  2280   2 12:47 pts/26   00:00:00 grep --color=auto mongo\|PID

当我运行时:sudo killall -15 mongod我再次运行上面的命令,我得到:

UID        PID  PPID  C    SZ   RSS PSR STIME TTY          TIME CMD
server    8299 25150  0  2939  2268   3 12:49 pts/26   00:00:00 grep --color=auto mongo\|PID

当我在我的 mongodb 服务关闭时运行此命令时:sudo netstat -tlnp | grep 27017 我什么也没有得到,但是当我启动 mongodb 服务并再次运行 netstat 命令时,我得到:

tcp        0      0 0.0.0.0:27017           0.0.0.0:*               LISTEN      9956/mongod   

mongodb.conf:

#Turn on simple rest api
rest=true

journal=true

#Storage Engine Set to mmapv1
storageEngine=mmapv1

#Directory for Data Files
dbpath={$path}/mongodb/data/db

#log file to send write to instead of stdout - has to be a file, not directory
logpath={$path}/mongodb/logs/mongo.log

#Append to logpath instead of over-writing
logappend=true

#Specify port number
#port=27017

#Full path to pidfile (if not set, no pidfile is created)
pidfilepath={$path}/mongodb/data/pid

#Each database will be stored in a separate directory
directoryperdb=true

#Run "{$path}/mongodb/bin/mongod.exe" --help in command prompt for more help.

仅供参考:我已经在 linux 的默认路径中安装了 ampps:/usr/local/ampps/

我在本地服务器上使用带有 AMPPS 3.6 的 ubuntu 14.04。我该如何解决这个问题,有什么建议吗?


更新 我已将此参数添加到 mongodb.conf 文件并重新启动 mongodb

bind_ip = 127.0.0.1

然后我运行这个:sudo netstat -tlnp | grep 27017

似乎 mongodb 正在监听127.0.0.1:27017当我尝试使用 mongo 从命令行连接到它时,它可以工作,但在 php 页面中我仍然遇到同样的问题。

有什么建议吗?

4

1 回答 1

0

在 ampps 3.6 中,他们将 mongodb.so 添加到 php 扩展列表中。如果您启用 mongo 和 mongodb 扩展,您将连接到 mongodb。

于 2016-10-23T05:08:40.803 回答