繁体   English   中英

Mac OSX Mavericks升级后,PHP和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

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我已关注它忠实地。 我还安装了这里引用的命令行工具: 无法在mac os 10.9上安装mongodb php驱动程序

相关的php.ini行:

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

任何帮助赞赏。 谢谢,Brian

我在ubuntu的同样情况下挂了一段时间,然后我就试过了

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

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

3)重新启动Web服务器。

4)如果仍然无法正常工作,请查看Web服务器和php日志,了解可能无法加载扩展的原因。

启用MongoDB模块的错误

一切都很好,但我还是继续得到,$ php --re mongo例外:扩展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());
}
?> 

因此,请尝试脚本,如果您能够无错误地连接,请忘记扩展名:)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM