【发布时间】:2012-12-22 10:33:50
【问题描述】:
我在 MAC OSX 10.8.2 上使用 PHP 5.3 安装了 MAMP 1.9 我安装了 MongoDB 和 PHP 扩展 mongo.so 并将其添加到我的 php.ini 中。
我可以在控制台上运行 MongoDB,我的 phpinfo 说 MongoDB 支持已启用,但我无法运行以下 PHP 脚本。
<?php $connection = new MongoClient(); ?>
PHP 出现致命错误:
Class 'MongoClient' not found
我的 MAMP(或扩展安装)的自动加载配置似乎有问题。
【问题讨论】:
-
你重启了 Apache 吗?您是否将扩展名添加到 Apache 目录中的 php.ini 文件?
-
是的,当然,phpinfo 说它已启用——我认为这不是 MongoDB 问题,我相信 PHP 根本找不到 Mongo 类的包含路径——顺便说一句:这些通常在哪里?
-
奇怪的是如果我运行这个...
$connection = new Mongo();...它说:Fatal error: Uncaught exception 'MongoConnectionException' with message 'connecting to failed: Invalid argument' in /Applications/MAMP/htdocs/mongo.php:4 Stack trace: #0 /Applications/MAMP/htdocs/mongo.php(4): Mongo->__construct() #1 {main} thrown in /Applications/MAMP/htdocs/mongo.php on line 4这不是意味着 PHP 知道 Mongo 类在哪里吗? -
echo extension_loaded("mongo") ? "loaded\n" : "not loaded\n";exit;提示“已加载”。感觉是版本问题。我读到 MongoClient 是 2012 年 11 月添加的一个类。 -
是的,您使用的是旧版本的驱动程序,不幸的是,文档已被仅替换为新版本...扩展应该可以通过 pecl 升级