如何开启XAMPP中的openssl扩展以支持HTTPS请求处理?

2026-04-24 19:022阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计852个文字,预计阅读时间需要4分钟。

如何开启XAMPP中的openssl扩展以支持HTTPS请求处理?

XAMPP默认已编译OpenSSL,但OpenSSL在PHP中默认禁用,未启动。因此,访问HTTPS、使用Composer安装、JWT签名等操作都会失败,显示SSL operation failed。此时,直接返回false或空内容。

确认 php.ini 路径并启用 extension=openssl

很多人改错了文件:XAMPP 的 Apache 和 CLI(命令行)可能使用不同 php.ini。先运行 php --ini(命令行)和 phpinfo()(浏览器中访问 http://localhost/dashboard/phpinfo.php),比对 “Loaded Configuration File” 路径是否一致。常见情况:

  • Apache 用的是 C:\xampp\php\php.ini(新版 XAMPP 8.0+)或 C:\xampp\apache\bin\php.ini(旧版)
  • CLI(如 Composer)用的是 C:\xampp\php\php.ini
  • 务必两边都改,否则浏览器能跑 HTTPS 请求,命令行却失败

找到对应 php.ini,搜索 ;extension=openssl,删掉开头分号;不要写成 extension=php_openssl.dll,XAMPP 的 extension_dir 已预设正确路径,硬写 DLL 名称反而加载失败。

必须同时启用 curl 扩展且顺序不能错

curl 依赖 openssl,如果只开 curl 不开 opensslcurl_init() 可能静默返回 false,curl_error() 却为空——这是最常被忽略的连带问题。

  • 在同一个 php.ini 中,确保 extension=openssl 出现在 extension=curl 之前(顺序敏感)
  • 同样取消注释 ;extension=curlextension=curl
  • 修改后必须重启 Apache(不是刷新页面),否则扩展不生效

Windows 下 Apache 启动失败?检查 libssl / libcrypto DLL

如果你用的是 XAMPP 7.4 或 8.x,且 Apache 启动时报错 “The requested operation has failed” 或日志里出现 “SSL Library Error”,大概率是缺失运行时 DLL:

  • 进入 C:\xampp\php 目录,确认存在 libcrypto-1_1-x64.dlllibssl-1_1-x64.dll
  • 把这两个文件复制到 C:\xampp\apache\bin\(Apache 的 bin 目录)
  • 不用复制到 System32,也不用加系统 PATH——Apache 启动时只从自身 bin 目录加载依赖 DLL

这一步在 XAMPP 8.0+ 中通常已预置,但升级 PHP 子版本(如手动替换 php/ 文件夹)后容易遗漏。

HTTPS 请求能发出去 ≠ 本地开发能跑通 HTTPS 站点

开启 openssl 扩展只是让 PHP 能处理 TLS 连接,不代表你的 Apache 就能响应 https://localhost。后者需要额外配置:

  • Apache 必须加载 mod_ssl(检查 httpd.confLoadModule ssl_module modules/mod_ssl.so 未被注释)
  • 需生成证书并配置 httpd-ssl.conf,否则访问 https 会直接连接被拒绝
  • 浏览器访问自签名证书时提示“不安全”,需手动将 server.crt 导入系统“受信任的根证书颁发机构”存储,否则某些 JS fetch 或 iframe 会拦截

也就是说:PHP 开启 openssl 是 HTTPS 请求的必要条件,但不是充分条件;服务端 HTTPS 和客户端证书信任是两个独立要解决的问题。

标签:xampppsSSL

本文共计852个文字,预计阅读时间需要4分钟。

如何开启XAMPP中的openssl扩展以支持HTTPS请求处理?

XAMPP默认已编译OpenSSL,但OpenSSL在PHP中默认禁用,未启动。因此,访问HTTPS、使用Composer安装、JWT签名等操作都会失败,显示SSL operation failed。此时,直接返回false或空内容。

确认 php.ini 路径并启用 extension=openssl

很多人改错了文件:XAMPP 的 Apache 和 CLI(命令行)可能使用不同 php.ini。先运行 php --ini(命令行)和 phpinfo()(浏览器中访问 http://localhost/dashboard/phpinfo.php),比对 “Loaded Configuration File” 路径是否一致。常见情况:

  • Apache 用的是 C:\xampp\php\php.ini(新版 XAMPP 8.0+)或 C:\xampp\apache\bin\php.ini(旧版)
  • CLI(如 Composer)用的是 C:\xampp\php\php.ini
  • 务必两边都改,否则浏览器能跑 HTTPS 请求,命令行却失败

找到对应 php.ini,搜索 ;extension=openssl,删掉开头分号;不要写成 extension=php_openssl.dll,XAMPP 的 extension_dir 已预设正确路径,硬写 DLL 名称反而加载失败。

必须同时启用 curl 扩展且顺序不能错

curl 依赖 openssl,如果只开 curl 不开 opensslcurl_init() 可能静默返回 false,curl_error() 却为空——这是最常被忽略的连带问题。

  • 在同一个 php.ini 中,确保 extension=openssl 出现在 extension=curl 之前(顺序敏感)
  • 同样取消注释 ;extension=curlextension=curl
  • 修改后必须重启 Apache(不是刷新页面),否则扩展不生效

Windows 下 Apache 启动失败?检查 libssl / libcrypto DLL

如果你用的是 XAMPP 7.4 或 8.x,且 Apache 启动时报错 “The requested operation has failed” 或日志里出现 “SSL Library Error”,大概率是缺失运行时 DLL:

  • 进入 C:\xampp\php 目录,确认存在 libcrypto-1_1-x64.dlllibssl-1_1-x64.dll
  • 把这两个文件复制到 C:\xampp\apache\bin\(Apache 的 bin 目录)
  • 不用复制到 System32,也不用加系统 PATH——Apache 启动时只从自身 bin 目录加载依赖 DLL

这一步在 XAMPP 8.0+ 中通常已预置,但升级 PHP 子版本(如手动替换 php/ 文件夹)后容易遗漏。

HTTPS 请求能发出去 ≠ 本地开发能跑通 HTTPS 站点

开启 openssl 扩展只是让 PHP 能处理 TLS 连接,不代表你的 Apache 就能响应 https://localhost。后者需要额外配置:

  • Apache 必须加载 mod_ssl(检查 httpd.confLoadModule ssl_module modules/mod_ssl.so 未被注释)
  • 需生成证书并配置 httpd-ssl.conf,否则访问 https 会直接连接被拒绝
  • 浏览器访问自签名证书时提示“不安全”,需手动将 server.crt 导入系统“受信任的根证书颁发机构”存储,否则某些 JS fetch 或 iframe 会拦截

也就是说:PHP 开启 openssl 是 HTTPS 请求的必要条件,但不是充分条件;服务端 HTTPS 和客户端证书信任是两个独立要解决的问题。

标签:xampppsSSL