在OSX上使用Homebrew的PHP72 MongoDB驱动程序

时间:2018-02-27 12:59:51

标签: php mongodb homebrew php-mongodb php-7.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中还有一个php文件夹(我的/ usr / local / opt文件夹)表示我现在有第二个PHP安装。这是应该的样子吗?

1 个答案:

答案 0 :(得分:1)

MAMP随附的PHP版本不完整,您需要获取完整版本here

然后,将本地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 在此下方添加extension=mongodb.so

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