PHP:未找到 Mongo 客户端

PHP:未找到 Mongo 客户端

我已经在 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

相关内容