PHP和Mac OSX Mavericks升级后Mongo崩溃


PHP & Mongo broken after Mac OSX Mavericks upgrade

在OSX 10.9.3升级之后,很多事情都无法正常工作。Apache, Mongo和PHP现在都是独立工作的,但是PHP的Mongo扩展不是。我希望stackoverflow社区可以提供帮助。下面是基本问题:

$ sudo pecl install mongo
pecl/mongo is already installed and is the same as the released version 1.5.3
install failed
$ php --re mongo
Exception: Extension mongo does not exist

perl和PHP在mongo扩展是否存在上有分歧。蒙戈。所以物理上存在:/opt/local/lib/php/extensions/no-debug-non-zts-20090626/mongo。所以它是安装在这里:/usr/lib/php/extensions/no-debug-non-zts-20100525我复制它,因为这是php.ini点。它在两个地方都是可执行的。看起来很奇怪,它被安装在错误的位置,所以也许有一个pecl配置需要翻转?另外,pecl在安装结束时没有找到php.ini,但我正在手动更新。

在10.9升级后恢复的最佳摘要似乎在这里:http://fighterpilotstress.blogspot.com/2013/10/installing-mongodb-driver-with-php-on.html,我忠实地遵循了它。我还安装了命令行工具,参考这里:无法在mac os 10.9上安装mongodb php驱动程序。

相关php.ini行:

include_path = ".:/usr/lib/php/pear"    
extension=mongo.so

感谢任何帮助。谢谢你,布莱恩。

我在ubuntu上遇到同样的情况挂了一会儿,然后我试了试

1)在phpinfo()屏幕中,确保配置文件路径和加载的配置文件与你正在编辑的PHP文件匹配。如果没有,那么找到正确的php.ini并添加mongo。所以扩展。

2)在phpinfo()屏幕中,查看extension_dir值并确认mongo。所以存在于那个目录中。如果没有,那就去找狗。文件复制到这个目录

3)重新启动web服务器。

4)如果它仍然不能工作,看看web服务器&PHP日志的线索,为什么扩展可能无法加载。

from Error enabling MongoDB module

在我这边一切都很好,但我还是不停地,$ PHP -re mongo异常:Extension mongo不存在

然后我检查了这个测试脚本,并能够连接到mongoDB。

<?php
try {
    // open connection to MongoDB server
    $conn = new Mongo('localhost');
    // access database
    $db = $conn->test;
    // access collection
    $collection = $db->items;
    // execute query
    // retrieve all documents
    $cursor = $collection->find();
    // iterate through the result set
    // print each document
    echo $cursor->count() . ' document(s) found. <br/>';
    foreach ($cursor as $obj) {
        echo 'Name: ' . $obj['name'] . '<br/>';
        echo 'Quantity: ' . $obj['quantity'] . '<br/>';
        echo 'Price: ' . $obj['price'] . '<br/>';
        echo '<br/>';
    }
    // disconnect from server
    $conn->close();
} catch (MongoConnectionException $e) {
    die('Error connecting to MongoDB server');
} catch (MongoException $e) {
    die('Error: ' . $e->getMessage());
}
?> 

因此,尝试脚本,如果你能够连接没有错误,忘记扩展:)。