2

我有一个问题可能表明我对 Homebrew 对 MongoDB 的误解:

我在 Mac OSX 10.12.6 (Sierra) 上使用 PHP 7.2.1(我想使用)运行 XAMPP(版本)。我安装了 MongoDB 并创建了配置和数据存储文件夹。它在命令行上运行良好(通过终端使用 mongod 和 mongodb 时)。

现在,我想为 PHP 7.2.1 安装 PHP 驱动程序。我按照http://php.net/manual/en/mongodb.installation.homebrew.php上的说明 将它们调整为 7.2 版,因此:

$ brew tap homebrew/homebrew-php
$ brew install php72-mongodb

这会在 /usr/local/Cellar 中创建一个 php72 和一个 php72-mongodb 文件夹。但是,我原来的(基于 XAMPP 的)PHP 位于 /Applications/XAMPP/ 中,而 php 位于 /Applications/XAMPP/etc/php.ini 中。

并简单地添加:

extension="/usr/local/opt/php72-mongodb/mongodb.so"

不会成功的。添加此扩展后,Apache 将不再启动。/Applications/XAMPP/logs/php_error.log 显示以下错误:

[27-Feb-2018 13:11:59 UTC] PHP Warning:  
PHP Startup: Unable to load dynamic library 'mongodb.so' 
(tried: /Applications/XAMPP/xamppfiles/lib/php/extensions
/no-debug-non-zts-20170718/mongodb.so 
(dlopen(/Applications/XAMPP/xamppfiles/lib/php/extensions/
no-debug-non-zts-20170718/mongodb.so, 9): image not found), 
/Applications/XAMPP/xamppfiles/lib/php/extensions/no-debug-non-zts-
20170718/mongodb.so.so 
(dlopen(/Applications/XAMPP/xamppfiles/lib/php/extensions/no-debug-
non-zts-20170718/mongodb.so.so, 9): image not found)) in Unknown on 
line 0

将我刚刚安装的驱动程序包含/连接到现有 XAMPP 安装的正确方法是什么?我是否需要以某种方式告诉 Homebrew 我的 XAMPP 安装在哪里?

鉴于我的 Homebrew(和我的 /usr/local/opt 文件夹)中还有一个 php 文件夹,这表明我现在有第二个 PHP 安装。这是应该的方式吗?

4

1 回答 1

2

MAMP 附带的 PHP 版本不完整,您需要在此处获取完整版本。

然后,将您的本地include文件夹替换include为该下载版本的文件夹。

转到您的终端并运行 ./configure,这将安装您的 MAMP php 的完整副本。

现在您已经准备好 PHP 目录,安装 mongodb 扩展:

cd /Applications/MAMP/bin/php/php(your version ex: 7.2)/bin

然后运行 ​​pecl 安装 mongodb 扩展

./pecl install mongodb

现在您已经安装了 mongodb,但您的 php 应该知道这一点。

转到 php.ini 文件并搜索;Extension Under this addextension=mongodb.so

然后重新启动服务器,一切顺利,希望对您有所帮助!

于 2019-05-30T02:08:27.733 回答