PHP和Mongo在Mac OSX Mavericks升级后出现故障

3

在升级了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

Pecl和PHP对mongo扩展是否存在存在分歧。mongo.so物理上确实存在于这里:/opt/local/lib/php/extensions/no-debug-non-zts-20090626/mongo.so,因为它是在此处安装的,也存在于这里:/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,我已经忠实地遵循了它。我还按照Unable to install mongodb php driver on mac os 10.9中提到的安装了命令行工具。
相关的php.ini行:
include_path = ".:/usr/lib/php/pear"    
extension=mongo.so

需要帮助,谢谢,Brian

1个回答

1

我在Ubuntu上遇到了同样的问题,然后尝试了以下步骤:

1)在phpinfo()页面中,确保“Configuration file Path”和“Loaded Configuration File”与您正在编辑的PHP文件相匹配。如果不匹配,则找到正确的php.ini文件并添加mongo.so扩展。

2)在phpinfo()页面中,查看extension_dir值并确认该目录中存在mongo.so。如果没有,请找到mongo.so文件并将其复制到该目录中。

3)重新启动Web服务器。

4)如果仍然无法正常工作,请查看Web服务器和PHP日志,以获取有关为什么未加载扩展的线索。

源自启用MongoDB模块时出错

在我的电脑上一切正常,但我仍然收到以下错误提示: $ php --re mongo Exception: Extension mongo does not exist

然后我使用此测试脚本进行了检查,并成功连接到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());
}
?> 

因此,请尝试运行脚本,如果能够成功连接而没有出现错误,则可以忽略扩展程序 :)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接