phpEnv本身不申请也不签发SSL证书,开启HTTPS的关键是为其集成的Apache或Nginx配置受信任的本地证书,并确保Web服务器与PHP协同识别加密连接;需启用mod_ssl模块、用mkcert生成含SAN的证书、修改httpd.conf和httpd-ssl.conf指向证书路径、设置SetEnv HTTPS on透传协议状态,并可选配置HTTP自动跳转HTTPS。

phpEnv 本身不申请也不签发 SSL 证书,它只是本地 PHP 环境管理器;开启 HTTPS 的关键,是为它所集成的 Apache 或 Nginx 正确配置受信任的本地证书,并确保 Web 服务器和 PHP 层协同识别加密连接。
启用 Apache 的 mod_ssl 模块
这是 HTTPS 能跑起来的前提。phpEnv 默认通常禁用 SSL 支持,跳过这步,后续所有配置都无效。
- 打开 phpenv\apache\conf\httpd.conf
- 取消注释这两行:
LoadModule ssl_module modules/mod_ssl.so
Include conf/extra/httpd-ssl.conf - 保存后,在 phpEnv 控制面板点击「重启 Apache」,或运行
httpd -t验证语法
生成浏览器信任的本地证书(推荐 mkcert)
别用传统 openssl req 命令——Chrome/Firefox/Edge 117+ 要求证书必须含 subjectAltName(SAN),否则直接拦截,无法跳过。
- 下载 mkcert(v1.4.8+),加入系统 PATH
- 以管理员身份运行命令行,执行:
mkcert -install(仅需一次,把根证书注入系统信任库) - 进入 phpenv\apache\conf\ 目录,新建 ssl 文件夹
- 执行:
mkcert localhost 127.0.0.1 ::1
生成 localhost+3.pem(证书)和 localhost+3-key.pem(私钥) - 将这两个文件复制到刚建的 conf\ssl\ 目录下
配置 Apache 虚拟主机并透传 HTTPS 状态
光有证书还不够。PHP 要知道当前是 HTTPS 请求,Apache 必须明确告知,否则 $_SERVER['HTTPS'] 始终为空,导致重定向错乱、混合内容警告等问题。
- 编辑 phpenv\apache\conf\extra\httpd-ssl.conf
- 替换全部内容为以下配置(路径按你实际安装位置调整):
ServerName localhost
DocumentRoot "D:/phpEnv/www"
SSLEngine on
SSLCertificateFile "conf/ssl/localhost+3.pem"
SSLCertificateKeyFile "conf/ssl/localhost+3-key.pem"
SetEnv HTTPS on
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
- 确保 DocumentRoot 和
路径一致,且指向你的项目根目录 - 重启 Apache 后访问 https://localhost,首次可安全跳过提示(因根证书已信任)
可选:添加 HTTP 自动跳转 HTTPS
避免手动输入 https,也防止混合内容加载。在网站根目录的 .htaccess 中加入:
RewriteEngine OnRewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
- 前提是 Apache 已启用 mod_rewrite,且对应目录允许 AllowOverride All
- 若使用 Nginx,请在站点配置中添加
return 301 https://$host$request_uri;到 80 端口 server 块
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











