在 OSX El Capitan 上将 imap 扩展添加到 PHP

Add imap extension to PHP on OSX El Capitan

我正在做一个需要 imap_open() 函数的项目,我刚买了第一台装有 OSX El Capitan 的 Macbook Pro。

我在 php.ini 中激活了扩展,但是缺少 .so 文件,搜索如何安装 imap 扩展在 El Capitan 上不起作用,并且在编译时出现错误 osdep.c:170:10: fatal error: 'x509v3.h' file not found

任何人都知道我应该安装什么才能获得该头文件,或者有什么简单的方法可以安装 Linux 上的扩展(yum install php5-imap,apt-get install php5-imap) ?

我上周遇到了同样的问题并设法解决了。 问题是 imap make 文件假定您打开的 ssl 位于 /usr/include/openssl 而在我的 mac 上它位于 /usr/local/Cellar/openssl/1.0.2d_1/include/openssl

您可以使用 locate x509v3.h 找到确切路径

按照 here 中的步骤...步骤之后 cd imap-2007f

打开 Makefile,搜索 OSX 并将 ssl 包含路径更改为您的路径

这应该可以解决编译问题,因此您可以继续进行,直到需要将 imap.so 复制到 /usr/lib/php 的最后一步,由于新的 SIP 功能,这是不可能的埃尔卡皮坦

看看here如何覆盖这个限制 希望对你有帮助

我在 El Capitan 上的 MAMP 中为 IMAP 安装 SSL 时遇到了这个问题。 Ivan的解决方案很好,但我发现了几个相同类型的后续问题:

fatal error: 'openssl/bio.h'

不要更改 Makefile,而是创建一个符号 link:

sudo ln -s /usr/local/Cellar/openssl/1.0.2a-1/include/openssl /usr/include/openssl

但要做到这一点,您必须首先消除 El Capitan 疯狂的“安全”缺陷,正如 Ivan 也提到的那样。在按住 +R 的同时启动,启动终端并写入 csrutil disable。然后reboot.

虽然我知道这并不能直接回答您的问题,但在 OSX 上安装 PHP 运行 IMAP 的最简单方法是安装 MAMP(https://www.mamp.info ).它将 PHP 和 Apache 的第二个副本安装到它自己的目录结构中,因此它为该产品提供了一个很好的本地开发环境。

这里的额外好处是它不会触及您的 pre-installed PHP 版本,所以如果您不喜欢 MAMP,可以将其删除。非常简单。

我正在使用 this 指南在我的 Mamp 环境中安装它 为我工作