发布于2026-07-10 阅读(0)
扫一扫,手机访问
很多人在本地用 phpEnv 搭环境,跑到 HTTPS 之后就想着把 HTTP/2 也开起来,结果折腾半天发现根本搞不定——这其实不是操作问题,是 phpEnv 这个工具本身就没给 HTTP/2 留任何余地。它既没集成 Nginx,也没带 Apache 的 HTTP/2 模块,更没提供任何配置入口。

一句话结论:phpEnv 不支持 HTTP/2,别在上面浪费时间。
phpEnv 是 Windows 下一款轻量级 PHP 集成包,底层跑的是 Apache 2.4.x(常见版本是 2.4.29 或更老)。Apache 要支持 HTTP/2,得同时满足两个硬性条件:
mod_http2 模块但实际检查 phpEnv 会发现:
mod_http2httpd.conf 里找不到 LoadModule http2_module modules/mod_http2.so 这一行,而且 modules/ 目录下根本不存在 mod_http2.so 这个文件Protocols h2 http/1.1 指令也会被直接忽略或报错如果你不死心,在 httpd.conf 或者虚拟主机配置里加上:
Protocols h2 http/1.1
重启 Apache 后,大概率会碰到以下三种情况之一:
Invalid command 'Protocols' —— 模块根本没加载,Apache 不认这个指令Protocol negotiation failed: no ALPN support —— OpenSSL 太老,不支持 ALPN,协议协商直接失败http/1.1 —— 命令行 curl -I --http2 https://localhost 返回的也是 HTTP/1.1 200,根本没有协商到 h2这些错误本质上不是配置写错了,而是 phpEnv 的底层基础设施根本不具备运行 HTTP/2 的条件。
想在本地开发中真正用上 HTTP/2,不要在 phpEnv 上继续折腾了。可行的路径只有三条:
--with-http_v2_module,配置里写 listen 443 ssl http2; 就能直接生效https:// + HTTP/1.1 完全够用,没必要在本地强求真正卡住你的从来不是“怎么配置”,而是 phpEnv 的架构决定了它不面向现代协议演进。与其花半天排查 mod_http2 缺失的原因,不如直接切到能开箱即用的环境上。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8