MongoDB PHP未捕获MongoDB\Driver\Exception\ConnectionTimeoutException:未找到合适的服务器

MongoDB PHP未捕获MongoDB\Driver\Exception\ConnectionTimeoutException:未找到合适的服务器,php,mongodb,Php,Mongodb,我被这个奇怪的问题缠住了 <?php require_once __DIR__ . "/vendor/autoload.php"; ini_set('display_errors', 1); ini_set('display_startup_errors', 1); error_reporting(E_ALL); // connect to mongodb $manager = new MongoDB\Driver\Manager("mongodb://localhost:27017"

我被这个奇怪的问题缠住了

<?php
require_once __DIR__ . "/vendor/autoload.php";

ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

// connect to mongodb
$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");

$command = new MongoDB\Driver\Command(array("ping" => 1));
$result = $manager->executeCommand("test", $command);

var_dump($result, $result->toArray());
?>
为什么很奇怪?我已经在网上搜索过这个问题了,人们总是说同样的话:

  • MongoDB服务器处于脱机状态
  • MongoDB服务器数据已损坏
  • 它不是离线的,我的Java应用程序(和“mongo”)可以很好地连接到MongoDB服务器,并且可以在不抛出ConnectionTimeoutException的情况下与数据库交互

    try {
        mongoClient = new MongoClient( "localhost" );
    } catch (UnknownHostException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    
    它没有损坏,因为如果它损坏了,我将无法通过Java连接它(对吗?)

    我已经尝试连接到127.0.0.1和localhost,同样的问题

    我已经尝试重新启动httpd和mongod,同样的问题

    我已经尝试将MongoDB服务器绑定到0.0.0.0,而不是127.0.0.1,同样的问题

    是的,安装了MongoDB驱动程序,它们在PHP信息中处于活动状态

    MongoDB PHP版本:1.2.1

    MongoDB shell版本:3.2.10(现在更新为3.4.0)


    PHP版本:7.0.13

    好的,我想我应该回来谈谈我是如何解决这个问题的(谢谢@jmikola!)

    你需要使用

    setsebool -P httpd_can_network_connect on
    
    来解决问题。

    我遇到了以下问题:

    Uncaught MongoDB\Driver\Exception\ConnectionTimeoutException: No suitable servers found (serverSelectionTryOnce set)
    
    我找了很多,但没有找到任何解决办法。。 使用macOs catalina,PHP7.2

    在我打开终端并运行命令之后

    mongod --dbpath Users/username/data/db
    
    --dbpath是您的/data/db路径


    我的代码工作正常。

    这在mac上不起作用,不是解决方案,仍然是驱动程序问题。我也遇到了这个错误,它已经让我发疯了。
    mongod --dbpath Users/username/data/db