phpenv不支持自动申请let’s encrypt证书,必须手动用mkcert生成shop.test.pem和shop.test-key.pem,存至c:/phpenv/ssl/,并在shop.test.conf中以绝对路径配置ssl_certificate与ssl_certificate_key,最后重载nginx。

phpEnv 不支持自动申请或部署 Let’s Encrypt 免费 SSL 证书,它没有内置 ACME 客户端,也无法调用 certbot 或 acme.sh。所有证书必须手动准备并配置,否则 HTTPS 将无法启用。
phpEnv 的 SSL 配置本质是 Nginx 虚拟主机改写
phpEnv 是 Windows 下的轻量集成环境,底层用的是 Nginx + PHP-FPM。它不提供图形化 SSL 管理界面,所谓“配置 SSL”,实际就是手动编辑站点对应的 nginx.conf 片段(通常在 C:\phpenv\nginx\vhost\ 下),然后放入证书文件路径。
- phpEnv 启动后,每个站点会生成一个独立的
.conf文件,比如shop.test.conf - 你需要在该文件的
server { ... }块中,手动添加listen 443 ssl、ssl_certificate和ssl_certificate_key指令 - 证书路径必须是绝对路径,且 Nginx 进程要有读取权限(Windows 下常因路径含空格或中文出错)
- 改完后必须点击 phpEnv 主界面的【重载 Nginx】按钮,不能只重启 PHP 或忽略重载
本地开发用 mkcert 生成可信证书最稳妥
在 Windows 上为 shop.test 这类本地域名配 HTTPS,mkcert 是唯一推荐方案。浏览器会信任它,不会弹“不安全”警告;而自签名证书或随便导出的 PEM 文件,Nginx 可能加载失败或被 Chrome 拒绝。
- 先用 Chocolatey 安装:
choco install mkcert - 运行
mkcert -install(需管理员权限,弹窗点“安装”) - 生成证书:
mkcert shop.test→ 得到shop.test.pem和shop.test-key.pem - 把这两个文件复制到固定目录,例如
C:\phpenv\ssl\(不要放桌面或用户文档夹,路径别含中文/空格) - 在
shop.test.conf中写入:ssl_certificate C:/phpenv/ssl/shop.test.pem; ssl_certificate_key C:/phpenv/ssl/shop.test-key.pem;
注意:Windows 路径用正斜杠/,反斜杠\在 Nginx 配置里会被当作转义符处理
phpEnv 界面里“选择证书”功能不可靠
phpEnv 主界面右键站点 → 【配置】→ 【SSL】页,有“证书文件”和“私钥文件”两个浏览框。这个功能经常失效:
- 选中文件后点保存,phpEnv 不会自动写入
nginx.conf,只是记在内部配置里,但实际不生效 - 如果证书路径含中文、空格或使用 OneDrive/腾讯微云同步目录,Nginx 启动时会报
SSL_CTX_use_PrivateKey_file() failed - 即使界面显示“已启用 SSL”,也务必检查
nginx.conf内容是否真被修改,以及error.log(位于C:\phpenv\nginx\logs\)里有没有SSL: error:0909006C:PEM routines:get_name:no start line这类解析错误
真正起作用的永远只有两件事:Nginx 配置文件里写了正确的 ssl_certificate 指令,且对应文件可被 Nginx 进程读取。phpEnv 的 UI 层只是个摆设,别依赖它完成实质配置。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











