【问题标题】:PHP72 MongoDB driver with Homebrew on OSX在 OSX 上使用 Homebrew 的 PHP72 MongoDB 驱动程序
【发布时间】:2018-08-07 03:19:25
【问题描述】:

我有一个问题可能表明我对 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 安装。应该是这样吗?

【问题讨论】:

  • 如果您将一个用于 XAMPP,我建议您卸载 homebrew php,让两者和谐地工作可能不会发生。尤其是现在 php72(或任何其他编号的 php)不再存在于 homebrew 中——我猜它现在只是 'php',带有一些用于版本控制的桶选择选项。仍然没有弄清楚如何做到这一点。无论如何,pecl 是为 php pecl 关联的版本安装模块的配套 php 工具,因此您可以尝试 sudo {pathto XAMPP pecl} install mongodb 您可能需要一个头文件链接以安装 openssl 加密或 OS X 开发库。

标签: php mongodb homebrew php-mongodb php-7.2


【解决方案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

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

【讨论】:

    猜你喜欢
    • 2016-09-01
    • 2015-07-24
    • 1970-01-01
    • 2016-03-13
    • 2016-03-18
    • 2023-03-27
    • 2012-12-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多