You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Mac系统MAMP 3.5升级OpenSSL至1.1.1t遇阻求助

解决MAMP 3.5中PHP 5.6.10升级OpenSSL至1.1.1t的问题

你之前操作的核心错误

你复制的/usr/local/Cellar/openssl@1.1/1.1.1t/bin/openssl.so并非PHP可加载的扩展文件——这个目录下的是OpenSSL命令行工具,而PHP 5.6的OpenSSL支持是和PHP编译时绑定的,单纯添加扩展配置无法替换底层依赖的旧版OpenSSL库。

正确解决步骤

1. 定位brew安装的OpenSSL 1.1.1t路径

先执行命令获取官方软链路径(比直接用Cellar目录更稳定):

brew --prefix openssl@1.1

输出通常为/usr/local/opt/openssl@1.1

2. 替换MAMP PHP依赖的OpenSSL动态库

MAMP的PHP 5.6.10通过动态链接调用OpenSSL库,我们需要替换它指向的旧库:

  • 进入MAMP PHP的库目录:
cd /Applications/MAMP/bin/php/php5.6.10/lib
  • 备份旧版库文件:
mv libssl.0.9.8.dylib libssl.0.9.8.dylib.bak
mv libcrypto.0.9.8.dylib libcrypto.0.9.8.dylib.bak
  • 创建软链指向brew的新版库:
ln -s /usr/local/opt/openssl@1.1/lib/libssl.1.1.dylib libssl.0.9.8.dylib
ln -s /usr/local/opt/openssl@1.1/lib/libcrypto.1.1.dylib libcrypto.0.9.8.dylib

3. 验证版本并重启服务

  • 重启MAMP的Apache/NGINX服务
  • 查看phpinfo()页面,检查OpenSSL Version字段,应该显示为1.1.1t
  • 若仍未生效,可通过命令行验证:
/Applications/MAMP/bin/php/php5.6.10/bin/php -i | grep "OpenSSL Version"

4. 配置PHPMailer强制使用TLS 1.2

在PHPMailer代码中明确指定TLS版本,避免自动降级:

$mail->SMTPSecure = 'tls';
$mail->SMTPAutoTLS = true;
$mail->SMTPOptions = [
    'ssl' => [
        'ciphers' => 'TLSv1.2',
        'protocol' => 'TLSv1.2',
        // 若遇到证书验证问题,可临时关闭以下两项,生产环境建议开启
        'verify_peer' => false,
        'verify_peer_name' => false
    ]
];

注意事项

  • PHP 5.6属于已停止维护的旧版本,与OpenSSL 1.1.1t可能存在兼容性隐患,务必完成全功能测试后再投入生产。
  • 后续通过brew更新openssl@1.1时,需要重新执行软链创建操作,因为版本号可能变更。

内容的提问来源于stack exchange,提问作者Flex60460

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 03:30:22