在 MAMP 中更改 openssl 版本
Posted
技术标签:
【中文标题】在 MAMP 中更改 openssl 版本【英文标题】:Change openssl version in MAMP 【发布时间】:2016-02-26 12:48:43 【问题描述】:openssl 0.9.8
doesn't work 与tls 1.2
:
user@computer: /usr/bin/openssl version
OpenSSL 0.9.8zg 14 July 2015
user@computer: /usr/bin/openssl s_client -connect somesite.com:8443
CONNECTED(00000003)
write:errno=54
但是openssl 1.0.2
正在使用它:
user@computer: openssl version
OpenSSL 1.0.2d 9 Jul 2015
user@computer: openssl s_client -connect somesite.com:8443
CONNECTED(00000003)
depth=2 C = US, O = "blah-blah" ...
....
我使用MAMP 作为本地服务器。 phpinfo
:
如何在MAMP
中更改openssl
的版本?
我知道,这个问题是duplicate,但我真的需要帮助。
【问题讨论】:
我不使用 mac、mamp 和所有这些东西,但如果您需要 openssl 1.0,请考虑停止使用 mamp,即使对于当前的 PHP 版本,它们仍然提供 0.9。例如,用于 Windows 的 PHP 5.5+ 与 openssl 1.0 一起提供。我相信您可以从其他来源安装 PHP 或将开发环境安装到虚拟机。作为一名 PHP 开发人员,您应该能够从头开始安装基本的开发环境。 您找到解决方案了吗?如果是的话,你能和我分享一下吗?我也需要使用 tls 1.2(因为 ios 9)... @LoryLory,不,我没有。 好的...对不起。如果您还不知道,我可以建议您使用最新版本的 AMPPS,它具有 apache 2.4 和升级版本的 openssl ...请参阅我的帖子:apple.stackexchange.com/questions/206901/… @LoryLory,哦!谢谢! 【参考方案1】:我已经向开发人员MAMP & MAMP PRO
提出了这个问题。他们是这样说的:
MAMP (PRO) 3.x 不捆绑 OpenSSL 软件,而是使用 Mac OS 捆绑的软件。如果您在 Mac OS 中更新 OpenSSL,MAMP (PRO) 应该会自动使用更新的版本。我们将在即将推出的未来 MAMP 4 版本中包含最新的 OpenSSL。这将是付费更新。
UPD来自 cmets(感谢 @lukemh):
PHP CURL fails on Cloudflare or SSLv3 sites using MAMP 3.5 due to old OpenSSL version
【讨论】:
这些将是好消息,但我担心他们在取笑我们,因为我在我的 MacBook Pro 上使用 El Capitan 更新了 OpenSLL,并按照这个答案 (***.com/questions/34518502/…) 我还更新了指向新的 openssl 二进制文件... (/usr/bin/openssl) 但它不起作用... mamp 和 apache 仍然使用 0.9.8... :( 你能告诉我他们的电子邮件吗?我也想写 @LoryLory, support@appsolute.zendesk.com 只是关于 MAMP 4.0 的警告。我刚刚安装了预发行版 4,它完全删除了我在 htdocs 文件夹下的所有网站。一切都消失了。谢天谢地,我做了备份。小心。 @vyx.ca 否:他们通常重命名旧的 MAMP,他们从不删除。【参考方案2】:我重新编译了 libcurl MAMP 正在使用。它现在对我有用:)
所以,让我们执行以下操作:
-
运行
/Applications/MAMP/Library/bin/curl-config --version
以查看您拥有的版本
转到http://curl.haxx.se/download/
并下载正确的版本
用./configure --prefix=/Applications/MAMP/Library/
配置它
make && make install
来源:http://dev.soup.io/post/56438473/If-youre-using-MAMP-and-doing-something
【讨论】:
@FranciscoBueno - 一开始效果很好,但现在我收到了Protocol "https" not supported or disabled in libcurl
。显然它也应该配置--with-ssl
,但是它找不到openssl文件并且配置失败。
您好 Fran,我需要添加 --with-ssl=/usr/local/Cellar/openssl/1.0.2c 来配置使用 homebrew 安装的 openssl 版本,否则它仍然使用该版本由 macos 提供。
-bash: ./configure: No such file or directory
好的,现在我有“curl 7.49.1 (x86_64-apple-darwin15.5.0) libcurl/7.49.1 OpenSSL/1.0.2h zlib/1.2.5 librtmp/2.3”但仍然没有 TLS 1.2 在 PHP - 做 file_get_contents 例如内部使用 libcurl?
这对我有用。这是一个易于遵循的指南:grasmash.com/article/using-httpsssl-mamps-curl-osx 对于 MAMP,您可以将该 php.ini 行放入您正在运行的 PHP 版本的 php.ini 中,即 Applications/MAMP/bin/php/php7.0.0/conf/php .ini【参考方案3】:
截至 2016 年 7 月 21 日,有一个包含 OpenSSL 1.0.2 的 MAMP PRO 4 的预发布版本,请在此处获取预发布版本:
https://www.mamp.info/en/pre-release.html
【讨论】:
【参考方案4】:如果您希望继续使用 MAMP 版本 3,您还可以执行以下操作以使其正常工作:
-
将当前版本的 MAMP 重命名为 MAMPv3
下载 MAMP 版本 4,下载后将其重命名为 MAMPv4
将 MAMPv3 重命名为简单的旧 MAMP
返回 MAMPv4 并进入“库”目录并复制名为“OpenSSL”的文件夹
将此文件夹移动到旧版本的 MAMP 中并重新启动服务器。为我工作!
【讨论】:
以上是关于在 MAMP 中更改 openssl 版本的主要内容,如果未能解决你的问题,请参考以下文章
如何更改在 MAMP 上运行的 Django 项目数据库名称?