- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我在 OS X Yosemite 上使用 MAMP 在我的本地机器上开发一个网站。该网站是在 HTTPS 上运行的 API 的客户端应用程序。当我尝试从 PHP 调用 API 时,我不断收到此错误:
error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure
相同的代码可以在服务器上运行,但站点已经在生产中,所以我需要能够创建一个单独的开发环境。无论我使用 cURL 还是使用 file_get_contents
调用 API,我都会得到完全相同的错误。我可以在命令行上使用 cURL 或在我的浏览器中加载 URL,它工作正常。我花了几个小时通读并尝试了我可以在本网站和其他地方找到的所有其他解决方案,但没有一个有效。还有其他人看到这个问题吗?
更新: 在发布这个问题之前,我终于在最后的努力中找到了解决方案,但这是一个非常痛苦的过程,所以我还是发布了它,希望它可以帮助其他人避免这场令人毛骨悚然的灾难。我的解决方案如下。
最佳答案
解决方法:
brew install openssl
在 cURL 源目录中:
LDFLAGS="-L/usr/local/opt/openssl/lib" CPPFLAGS="-I/usr/local/opt/openssl/include" ./configure --prefix=/Applications/MAMP/Library/
制作
安装
在 PHP 中,curl_init
和 curl_exec
之间:
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
解释:
寻找解决方案的路径始于 this site ,它描述了 MAMP 上的一个不同的 SSL 错误,并建议使用
重新编译新版本的 cURL--prefix=/Applications/MAMP/Library/
覆盖 MAMP 使用的那个。我试过了,但没用。后来,有什么事让我研究了 cURL 编译选项,我注意到在编译时指定不同版本的 OpenSSL 的说明。我决定试一试(向自己保证这是最后一次尝试然后我会放弃)。我用 Homebrew 安装了一个最新的 OpenSSL 包,其有用的安装后信息说:
If you build your own software and it requires this formula, you'll need to add to your
build variables:
LDFLAGS: -L/usr/local/opt/openssl/lib
CPPFLAGS: -I/usr/local/opt/openssl/include
这看起来与我在 cURL 编译选项中看到的内容类似,它为上述内容指定了正确的语法:
LDFLAGS="-L/usr/local/opt/openssl/lib" CPPFLAGS="-I/usr/local/opt/openssl/include" ./configure
我在--prefix=/Applications/MAMP/Library/
里加回来了,后面是通常的make
和make install
,重启MAMP,松了一口气。
我后来发现我从另一个网站输入的 cURL 选项之一对于避免不同的 SSL 错误(“SSL 证书问题:无法获得本地颁发者证书”)也是必要的。将 CURLOPT_SSL_VERIFYPEER
设置为 false 为我解决了这个问题。
关于php - MAMP SSL 错误 : "error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32431465/
我使用 MAMP Pro (4.4)。我在应用程序中有许多 MAMP 文件夹占用了大量空间。删除旧的并保留最新的是否安全?因此保留 MAMP 和 MAMP_2018-02-12_21-21-59(见下
我正在尝试在 MAMP php 中安装 pecl_http。 我收到以下错误。 grep: /Applications/MAMP/bin/php/php5.5.10/include/php/main/
警告:我对 Mac 和 OS X 还是很陌生。 我从 mamp.info 下载了 MAMP 以安装在运行 OSX 10.8.5 的 2012 年末 iMac 上。 安装程序让我可以选择只安装 MAMP
我有 MAMP Pro . 如何让 MAMP Pro 服务器在重启时自动启动? 最佳答案 在 MAMP Pro 版本 4.5(仍然是 5.5.x)中,此选项位于 Ports 下。 关于mamp - 在
我正在使用 MAMP Pro作为开发环境。我用过 ngrok与 MAMP前。但是在这种特殊情况下,它从 ngrok 重定向url 到我的本地 url 并且 https 不可用。 我的本地服务器是 e-
我在带有虚拟主机的 Macbook Pro 上运行 MAMP Pro 4。它工作正常。我希望能够从本地网络上的其他设备访问它,以便测试各种浏览器/操作系统组合。我在网上找到的所有文章和帖子都是针对早期
我在带有虚拟主机的 Macbook Pro 上运行 MAMP Pro 4。它工作正常。我希望能够从本地网络上的其他设备访问它,以便测试各种浏览器/操作系统组合。我在网上找到的所有文章和帖子都是针对早期
我想在我的 Windows 8.1 电脑上运行 MAMP,但是当我启动服务器时,它说: 'APACHE' needs open port '80' which is already being use
我正在尝试安装 libsodium(按照本指南 https://paragonie.com/book/pecl-libsodium/read/00-intro.md#installing-libsod
使用 MAMP Pro,您可以创建诸如“local.example.com”之类的条目并指向本地计算机上该站点的根目录。 有可能自动化吗? 那是在我的电脑上,我的设置如下: 用户/hm/Sites/e
我有时会在 phpMyAdmin 中获取存储在/Library/Application Support/appsolute/db/mysql 下的数据库,这应该是 MAMP PRO 的路径。不过,我不
我正在运行 MAMP,它告诉我它无法写入/etc/hosts 文件。我猜这是一个许可问题,但不完全确定。这是错误: The file /etc/hosts couldn't be written 有什
我的桌面上有一个名为 work 的文件夹,用于保存所有 php 项目。我使用 MAMP 并且所有项目都设置为在虚拟主机上运行,例如,如果我有一个名为 test 的项目,我将通过此 URL http
我试图在我的 php.ini 中将 display_errors = Off 更改为 display_errors = On。我运行了 phpinfo() 并验证了加载的配置文件(它位于:/Libra
我正在将 Laravel/horizon 与 Osx MAMP pro 一起使用 当我运行 Composer 时,它需要 laravel/horizon:~1.0它显示一条消息 - laravel
我正在尝试使用 mamp 设置虚拟主机。当我输入 http://resihop:8888我最终进入 127.0.0.1。为什么? 一些事实: 站点名称:resihop Apache 端口:8888 宿
好的,希望有人能帮帮我。我已经安装了 MAMP PRO(在使用 MAMP 一段时间之后)。 启动 MAMP PRO 时,我已连接到 Apache 服务器和 MySQL。它之所以有效,是因为我同时拥有两
有人知道如何在 MAMP/MAMP Pro 上增加 apache fastCGI 超时吗?我到处找,但似乎找不到。 一如既往地感谢任何帮助。 谢谢, Codarz360 最佳答案 这太乏味了,但终于让
如何更改我的 MAMP mysql.sock 文件路径 /Applications/MAMP/tmp/mysql/mysql.sock 每当我退出 MAMP 或重新启动计算机时,其他内容都不会被删除?
我已经升级到 MAMP Pro,mysql 文件夹不会出现在它们在 MAMP/db 中的位置 MAMP Pro 将 MySQL 数据库保存在哪个位置? 最佳答案 MAMP Pro 的更新版本将数据库保
我是一名优秀的程序员,十分优秀!