【发布时间】:2016-04-03 18:39:28
【问题描述】:
在装有 El Capitan 的 MacBook Pro 中,我有 Apache Apache/2.4.16 (Unix) 和 OpenSSL/0.9.8zg,我需要更新到更高版本。我尝试从 brew 更新 openssl 并构建它。我从here下载了最后一个版本,然后我做了:
./配置 darwin64-x86_64-cc
制作
进行测试
进行安装
一切似乎都很好,但是当我运行 Apache 并查看 phpinfo(); 输出时,我发现使用的版本仍然是 OpenSSL/0.9.8zg。
你知道如何解决这个问题吗?
更新
今天,2016 年 7 月 21 日,有一个带有 openssl 1.0.2 的 MAMP 4 预发布
【问题讨论】:
-
你可以使用“pmap”查看Apache的进程中附加了哪个openssl库
-
@rkosegi 我已经运行了你的命令(在 Mac OS X 中是`vmmap pid_httpd),这就是我得到的:
-
__DATA 00000001052f6000-00000001052f8000 [ 8K] rw-/rwx SM=COW /usr/libexec/apache2/mod_ssl.so __DATA 00000001052f8000-00000001052fa000 [ 8K] r /apache2/mod_ssl.so __DATA 00007fff74cf4000-00007fff74cfa000 [ 24K] rw-/rwx SM=COW /usr/lib/libssl.0.9.8.dylib
-
安装 Macports。它将修改您的路径,以便 Macport 二进制文件首先在路径上。然后,使用
port install openssl安装 openssl。它将安装到/opt/local/bin。您不能更新位于/usr/bin和/usr/lib的 OpenSSL,因为它们不二进制兼容。 -
@Lory - 是的,当然会。你不能以你试图做的方式换掉东西。没有二进制兼容性。如果你试图强制它,它会导致内存错误和无法解释的崩溃。相反,也可以通过 Macports 安装 Apache。然后,禁用 OS X 的内置 Apache 并在 Macport 的
/opt/local/bin中使用您的版本。 Macport 的配置文件将位于/opt/local/etc, IIRC。我一直在 OS X 上使用 OpenSSH 服务器做类似的事情。