【问题标题】:install mongodb extension for xampp on macos在 macOS 上为 xampp 安装 mongodb 扩展
【发布时间】:2018-11-13 02:30:30
【问题描述】:

我已经找了一整夜,我还没有找到解决办法。 我试图通过运行sudo /Applications/XAMPP/xamppfiles/bin/pecl install mongodb 来安装 mongodb 扩展 但最后我得到了这个错误

fatal error: 'unicode/usprep.h' file not found
#include <unicode/usprep.h>
         ^~~~~~~~~~~~~~~~~~
1 error generated.
make: *** [src/libmongoc/src/libmongoc/src/mongoc/mongoc-scram.lo] 
Error 1
ERROR: `make' failed

【问题讨论】:

  • 我的第一个 google 搜索结果导致 brew install icu4c 包含库依赖项。我实际上只是在 Mac OS X 上搜索了包含,但实际上PECL mongodb 上也存在问题。
  • 我已经这样做了!
  • Sooo,如果您实际上包含“您已经完成的工作”的详细信息,它可能只会帮助人们回答您的问题。没有必要强迫每个人提出建议,然后得到答复“我已经这样做了”。为您尝试的“一切”添加详细信息。
  • 你能解决吗,我也面临同样的问题。
  • 我也有同样的问题,有解决办法吗?

标签: php mongodb xampp mongodb-php


【解决方案1】:

我有同样的问题。我有icu4c、开发人员工具,以及我应该安装的所有东西。它应该起作用了。我正用头撞这个,不知道为什么它不能编译。

问题是这样的:它试图使用位于 XAMPP 目录 (/Applications/XAMPP/xamppfiles/bin) 中的 icu4c 文件。这是 XAMPP 附带的,而不是您刚刚安装的(或通过 brew install icu4c 安装的)。编译时使用了错误的二进制文件!

您可以通过以下方式检查它的来源:which icuinfo

它应该类似于 /usr/local/opt/icu4c/bin/icuinfo(路径可能会有所不同,我在 MacOS Catalina 上并使用自制软件安装)而不是 /Applications/XAMPP/xamppfiles/bin

我们大多数人都修改了$PATH 以包含XAMPP bin 目录,并且由于icu4c 位于/usr/local/opt/icu4c/bin/usr/local/opt/icu4c/sbin,因此不知道它的存在。这 2 个特定的 icu4c 路径不在您的系统路径中搜索文件的位置。所以要么 A)它找不到它,要么 B)它在 XAMPP bin 目录中找到那个。

由于我们基本上在 2 个目录中安装了 icu4c,因此我们需要确保我们想要的那个是我们的 $PATH 和 XAMPP 之前的第一个!

解决方案

您应该知道如何修改您的 $PATH。我使用 iTerm 和 zsh (oh-my-zsh) 仅供参考。

我还按照成功编译后的建议添加了LDFLAGSCPPFLAGSPKG_CONFIG_PATH 值。

这是我的.zshrc 文件中的一个片段:

# My cleaner way of organizing my paths
BIN=$HOME/bin
LOCAL_BIN=/usr/local/bin
HOMEBREW=/usr/local/sbin
COMPOSER=$HOME/.composer/vendor/bin
XAMPP=/Applications/XAMPP/bin
ICU4C_BIN=/usr/local/opt/icu4c/bin
ICU4C_SBIN=/usr/local/opt/icu4c/sbin

export PATH=$HOMEBREW:$COMPOSER:$ICU4C_BIN:$ICU4C_SBIN:$XAMPP:$BIN:$LOCAL_BIN:$PATH

export LDFLAGS="-L/usr/local/opt/icu4c/lib"
export CPPFLAGS="-I/usr/local/opt/icu4c/include"

export PKG_CONFIG_PATH="/usr/local/opt/icu4c/lib/pkgconfig"

显然您可以忽略$HOMEBREW$COMPOSER 等...并根据需要申请。我只是将它们分开以获得一个干净且易于理解的 $PATH。老实说,我真的建议像上面那样组织和分离你的路径。很有帮助!

【讨论】:

    【解决方案2】:

    在 Mac 上,首先需要安装 icu4c:

    $ brew install icu4c
    $ brew link icu4c --force
    

    然后修改您的$PATH 以包含icu4c

    export PATH="/usr/local/opt/icu4c/bin:$PATH"
    export PATH="/usr/local/opt/icu4c/sbin:$PATH"
    export LDFLAGS="-L/usr/local/opt/icu4c/lib"
    export CPPFLAGS="-I/usr/local/opt/icu4c/include"
    

    最后安装mongodb php驱动:

    $ sudo pecl install mongodb
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-09-21
      • 2019-07-06
      • 2020-06-20
      • 2023-03-15
      • 2017-06-24
      • 1970-01-01
      • 2015-08-11
      • 1970-01-01
      相关资源
      最近更新 更多