Mac OSX Mavericks 升级后 PHP 和 Mongo 损坏

标签 php macos mongodb osx-mavericks pecl

在 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

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

最佳答案

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

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

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

3) 重新启动您的网络服务器。

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

来自 Error enabling MongoDB module

我这边一切都很好,但我还是不断得到, $ 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());
}
?> 

因此请尝试该脚本,如果您能够正确连接,请忘记扩展名:)。

关于Mac OSX Mavericks 升级后 PHP 和 Mongo 损坏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24222756/

相关文章:

mysql - 数据库设计——Follow System of billions of records

javascript - 创建 PHP websockets 服务器

php - SQL - 改进 JOIN 查询(​​需要很长时间才能加载)

python - 将 Python 框架捆绑到 Xcode 应用程序中

objective-c - 核心数据: Database migration causes duplicates

javascript - 每个任务完成后,如何一遍又一遍地运行异步函数

node.js - 如何从hh :mm to hh:mm in mongoDB过滤两个时间之间的数据

php - Smarty 可以只读取一个 block 而不是模板吗?

php - Laravel 另一种附加到模型的方法

objective-c - Cocoa 类成员变量在函数调用内部分配 nil 除非强制初始化/加载