![PHP:未找到 Mongo 客户端](https://linux22.com/image/1418250/PHP%EF%BC%9A%E6%9C%AA%E6%89%BE%E5%88%B0%20Mongo%20%E5%AE%A2%E6%88%B7%E7%AB%AF.png)
我已经在 MacBook 上安装了 XAMPP。PHP 和 MySQL 运行良好,因此我使用 mongo 进行后续操作。我执行了以下操作:
- brew install mongo(成功)
- brew install autoconf(成功)
- sudo /Applications/XAMPP/xamppfiles/bin/pecl install mongo(成功)
到目前为止一切顺利。我将完整的 mongo.so 路径添加到 `/etc/php.ini 的最末尾,如下所示:
[mongo]
扩展=/应用程序/XAMPP/xamppfiles/lib/php/extensions/no-debug-non-zts-20121212/mongo.so
问题:
php --version
但是,输入会返回以下内容:
PHP 警告:PHP 启动:mongo:无法初始化模块
使用模块 API=20121212 编译的
模块 使用模块 API=20100525 编译的 PHP
这些选项需要与第 0 行未知中的选项匹配
PHP 5.4.24 (cli)(构建于:2014 年 1 月 19 日 21:32:15)
我尝试过的:
我设法通过以下方式更新 OS X 的 PHP 来摆脱上述错误(注意:摆脱):curl -s http://php-osx.liip.ch/install.sh | bash -s 5.5
然后我在 .bash_profile 中添加了以下几行:export PATH=~/bin:/usr/local/php5/bin:$PATH
php -m
现在将 mongo 列为模块之一,并且它不再产生上述错误。
但是,phpinfo() 没有 mongo,并且使用 mongo 客户端运行我的网页时出现以下错误:
未找到 FatalErrorException 类“MongoClient”
因此,我重复了以下内容:sudo /Applications/XAMPP/xamppfiles/bin/pecl install mongo
现在它告诉我我的 mongo 已经是最新的了:
pecl/mongo 已安装,与发布的 1.5.5 版本相同
附加信息:
- PHP 版本:PHP 5.5.14 (cli)(构建于:2014 年 6 月 28 日 10:29:43)
- Mongo版本:MongoDB shell版本:2.6.3
- Mongo 客户端:1.5.5
答案1
您输入的是php --version
还是/Applications/XAMPP/xamppfiles/bin/php --version
?并且您将这行添加到了哪个 php.ini?添加/etc/php.ini
到 还是/Applications/XAMPP/xamppfiles/etc/php.ini
?
第一条路径始终引用 OS-X 默认 PHP(即 PHP5.4),后一条路径引用 XAMPPs PHP(即 PHP5.5,并且具有与 PHP5.4 不同的 API)。
因此,我假设您已为 PHP5.5 (XAMPP) 编译了模块,并将其添加到 PHP5.4 (OS-X)。这根本行不通!您必须将 mongo so-Path 添加到正确的 php.ini 文件的末尾,在您的情况下,该文件是 XAMPP 的文件(如果我没记错的话),位于/Applications/XAMPP/xamppfiles/lib/php.ini
答案2
我为此烦恼了好几天。最后解决了这个问题XAMPP\etc\php.ini
。我添加了/usr/local/php5-5.6.25-20160831-101628/lib/php/extensions/no-debug-non-zts-20131226/mongo.so
,它工作正常。要mongo.so
在终端中查找文件的位置,请输入locate mongo.so