使用 pecl 在 OS X El Capitan (v10.11.1) 上安装 Mongodb 驱动程序

Using pecl to install the Mongodb driver on OS X El Capitan (v10.11.1)

我正在尝试为 OS X 安装 php mongo 驱动程序。我已尝试按照 these instructions 进行操作,但无济于事。

$ which pecl -> /usr/local/Cellar/php56/5.6.13_2/bin/pecl

$ sudo pecl install mongo -> 完整构建结果 here 但问题是错误:

In file included from /private/tmp/pear/install/mongo/io_stream.c:34:
/private/tmp/pear/install/mongo/contrib/php-ssl.h:33:10: fatal error: 'openssl/evp.h' file not found
#include <openssl/evp.h>

我的 Xcode 命令行工具是最新的(我使用 $ xcode-select --install 来确定)。

我知道如何解决这个问题。

我建议对此类事物使用 http://phpbrew.github.io/phpbrew/。它让您可以轻松地将任何扩展安装到您需要的任何 php 版本。

安装新版本的php时,我通常会在编译时留意日志。可能有需要先安装的依赖项。另外,请确保您安装了更新版本的自制软件。

我设法通过使用 Homebrew 安装 OpenSSL 来解决这个问题 (as suggested here):

$ brew install openssl
$ brew link openssl --force

然后

$ sudo pecl install mongodb

您需要禁用 Mac OSX El Capitán 无根机制:

  1. 使用 Cmd-R 启动
  2. 打开终端
  3. 键入 csrutil 禁用
  4. 重启

在Mac上,您需要安装Xcode,并为Xcode自带的openssl构建符号链接,即

cd /usr/include;
sudo ln -s /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift-migrator/sdk/MacOSX.sdk/usr/include/openssl

这样做

$ cd /usr/local/include 
$ ln -s ../opt/openssl/include/openssl