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

Rob*_*eph 6 php macos xcode mongodb osx-elcapitan

我正在尝试为OS X安装php mongo驱动程序.我试过按照这些说明无济于事.

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

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

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>
Run Code Online (Sandbox Code Playgroud)

我的Xcode命令行工具是最新的(我曾经$ xcode-select --install确定).

我确定如何解决这个问题.

Joh*_*eri 16

我设法通过使用Homebrew安装OpenSSL来解决这个问题(如此处所示):

$ brew install openssl
$ brew link openssl --force
Run Code Online (Sandbox Code Playgroud)

然后

$ sudo pecl install mongodb
Run Code Online (Sandbox Code Playgroud)

  • 值得注意的是`mongo`是不推荐使用的包名; 人们应该使用`mongodb`.强制brew连接也适用于较新的包`mongodb`.谢谢! (4认同)
  • @EzekielVictor我更新到mac os Sierra,当我尝试执行brew install open ssl时,它说"警告:openssl-1.0.2j已经安装",并且当我执行brew链接openssl时 - 再次强制它说"警告:拒绝链接:openssl链接keg-only openssl意味着你可能在使用Homebrew的openssl的头文件时最终链接到不安全的,已弃用的系统OpenSSL.而是将完整的include/library路径传递给你的编译器,例如:-I/usr/local/opt/openssl/include -L/usr/local/opt/openssl/lib"任何想法如何让它工作? (2认同)

Unc*_*oke 9

做这个

$ cd /usr/local/include 
$ ln -s ../opt/openssl/include/openssl
Run Code Online (Sandbox Code Playgroud)