我有一个问题可能表明我对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安装。这是应该的样子吗?
答案 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
然后重新启动服务器,一切顺利,希望对您有所帮助!