我的开发团队无法从本地开发环境访问远程MongoDB数据库.
远程Ubuntu开发服务器使用为PHP 5.3构建的mongo-php-driver v1.3.7运行MongoDB和PHP 5.3的最新v2.4.3.除基本路径设置外,mongodb.conf几乎为空.目前没有分片或副本集.
所有团队成员都使用OSX 10.8,PHP 5.3,并为PHP 5.3构建了mongo-php-driver v1.3.7.一些团队成员使用XAMPP,其他人使用内置OSX AMP堆栈.我们测试所有主要的桌面浏览器.
每当页面需要从Mongo中获取数据时,我们首先调用此连接函数:
public static function connect($server, $db)
{
$connection = new MongoClient(
"mongodb://{$server}:27017",
array(
"connectTimeoutMS" => 20000,
"socketTimeoutMS" => 20000
)
);
return $connection->$db;
}
但是,近30%的页面加载遇到以下错误:
无法连接到:www.development-server.com:27017:send_package:从套接字读取错误:超时等待标头数据
在刷新页面时,似乎有很大一部分错误发生,而不是导航到新页面,但这更像是一个猜测而非事实.我检查了每个人的php.ini文件并确认default_socket_timeout = 60已设置.
开发服务器还托管了该站点的副本,但从未抛出错误,大概是因为它只调用localhost到达那里.当我在本地安装MongoDB时,错误也消失了.
这似乎是一个超时问题,但我找不到任何进一步的设置,参数或配置来调整到期时间.有吗?