Fatal error: Uncaught exception 'MongoConnectionException' with message
'Failed to connect to: localhost:27017: Permission denied' in
/var/www/html/test.php:8 Stack trace: #0 /var/www/html/test.php(8):
MongoClient->__construct() #1 {main} thrown in /var/www/html/test.php
on line 8
嗨蒙戈專家...未捕獲的異常 'MongoConnectionException'
我想嘗試一下MongoDB的開發。因此,在測試機器(Dell E520 Intel Dual Core 4GB Ram)上安裝了centoOS 6.5 64bit,安裝了PHP(Apache已經存在)。
然後安裝了MongoDB(yum install mongo-10gen mongo-10gen-server),然後安裝了「pecl install mongo」(安裝正確:channel://pecl.php.net/mongo-1.4.5),添加了擴展= mongo.so到php.ini。
要安裝pecl,我安裝了其他一些東西,比如C++編譯器& php-pear。 php5-dev & php5-cli在yum中沒有這麼安裝php-devel & php-cli(安裝的版本是php-devel-5.3.3-27.el6_5.x86_64 & php-cli-5.3.3-27.el6_5 .x86_64
我關掉iptables防火牆冉蒙戈 - 主機本地主機:27017從外殼&連接沒有問題
[[email protected] ~]# mongo --host localhost:27017
MongoDB shell version: 2.4.8
connecting to: localhost:27017/test
>
這些都是test.php的
<?php
ini_set('display_errors',1);
ini_set('display_startup_errors',1);
error_reporting(-1);
// connect
$m = new MongoClient();
//$m = new MongoClient("mongodb://localhost:27017");
// select a database
$db = $m->comedy;
// select a collection (analogous to a relational database's table)
$collection = $db->cartoons;
// add a record
$document = array("title" => "Calvin and Hobbes", "author" => "Bill Watterson");
$collection->insert($document);
// add another record, with a different "shape"
$document = array("title" => "XKCD", "online" => true);
$collection->insert($document);
// find everything in the collection
$cursor = $collection->find();
// iterate through the results
foreach ($cursor as $document) {
echo $document["title"] . "\n";
}
?>
內容正如你可以看到我hav e嘗試了兩個 $ m = new MongoClient(); & $ m = new MongoClient(「mongodb:// localhost:27017」);
但我得到同樣的錯誤。我哪裏錯了?
默認的Apache在這些系統上的設置不會允許請求進行網絡連接,這意味着駕駛者將得到「許可被拒絕」:
這聽起來像你已經設置了與MongoDB的身份驗證。也許RedHat的軟件包默認是這樣做的? – Derick
我不知道我如何設置身份驗證以及如何在沒有身份驗證的情況下進行測試......您能告訴我如何重寫代碼以使用MongoDB嗎? – JoshG
您的mongod實例仍然可以配置爲啓用身份驗證,即使您可以在上面連接它。要驗證它是否已啓用,請嘗試在您的漫畫集合上運行測試查詢。如果你沒有在mongo shell中驗證你的會話,它應該會拋出一個錯誤。要關閉身份驗證,您需要重新啓動您的mongod實例。您應該檢查您的mongod.cfg文件以查看它是否啓用auth = true選項進行身份驗證。 –