phpenv 无法直接启用真实 https,因其不提供 ssl 终端能力、不自动申请证书且无公网域名绑定;需手动配置 nginx/apache 的自签名 https、修改 wordpress 地址及混合内容处理,并导入证书绕过浏览器拦截。

直接说结论:phpEnv 本身不提供 SSL 终端能力,不能直接“安装 WordPress 并一键配好 HTTPS”,但你可以用它搭起本地 PHP + MySQL 环境,再手动完成 WordPress 安装和 HTTPS 模拟——关键是把 nginx 或 Apache 的 HTTPS 配置补全,并绕过浏览器对本地自签名证书的拦截。
为什么 phpEnv 无法直接启用真实 HTTPS?
phpEnv 是本地开发环境管理工具(类似 phpenv + 集成服务),默认只开 HTTP(http://localhost 或你设的 http://www.tp.com)。它不自动申请或部署 Let's Encrypt 证书,也不绑定公网域名,所以无法获得浏览器信任的 TLS 证书。
常见错误现象:
– 访问 https://www.tp.com 显示“连接被拒绝”或“无法建立安全连接”
– 浏览器地址栏标红、提示“不安全”,甚至直接阻止加载
– WordPress 后台设置里改成 https:// 后,登录页反复跳转或样式/JS 全挂
根本原因:HTTPS 要求服务器有合法证书 + 443 端口监听 + 域名 DNS 可解析(至少本地 /etc/hosts 或 Windows System32\drivers\etc\hosts 能映射),而 phpEnv 默认没动这三块。
在 phpEnv 下模拟 HTTPS 的实操路径
你不需要公网证书,但要让 WordPress 识别并跑在 HTTPS 模式下,用于开发调试。核心是两步:改 Web 服务器配置 + 告诉 WordPress “我在用 HTTPS”。
- 确认你用的是
nginx模式(phpEnv 界面可选);如果是Apache,对应改httpd.conf和ssl.conf - 生成自签名证书(仅本地用):
openssl req -x509 -nodes -days 365 -newkey rsa:2048 \ -keyout /path/to/phpenv/nginx/ssl/www.tp.com.key \ -out /path/to/phpenv/nginx/ssl/www.tp.com.crt
(路径按你 phpEnv 实际安装位置调整) - 编辑 nginx 虚拟主机配置(如
C:\phpEnv\nginx\vhost\www.tp.com.conf),加入 443 server 块:server { listen 443 ssl; server_name www.tp.com; ssl_certificate C:/phpEnv/nginx/ssl/www.tp.com.crt; ssl_certificate_key C:/phpEnv/nginx/ssl/www.tp.com.key; # 其余 root / location 保持和 80 端口一致 } - 在
wp-config.php顶部加强制识别 HTTPS 的判断(防止后台跳回 HTTP):if ($_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https' || (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on') || ($_SERVER['SERVER_PORT'] == 443)) { $_SERVER['HTTPS'] = 'on'; } - 重启 phpEnv 的 nginx 服务(界面点“重启”或命令行进目录执行
nginx -s reload)
WordPress 后台必须改的两个 URL 和混合内容修复
即使 nginx 跑起来了,WordPress 默认仍按 HTTP 输出资源链接,导致页面空白、图标不显示、AJAX 失败——这就是混合内容(Mixed Content)。
登录后台后立刻做这两件事:
- 进入 设置 → 常规,把
WordPress 地址(URL)和站点地址(URL)全部改为https://www.tp.com,保存 - 不要依赖插件自动替换;直接进数据库(用 phpEnv 自带的 phpMyAdmin),打开
wp_options表,搜索siteurl和home,手动把值从http://www.tp.com改成https://www.tp.com - 主题
functions.php里加一行过滤(防新文章/附件链接仍是 HTTP):function force_https_urls($url) { return str_replace('http://www.tp.com', 'https://www.tp.com', $url); } add_filter('the_content', 'force_https_urls'); add_filter('wp_get_attachment_url', 'force_https_urls');
注意:wp-config.php 中已有 define('FORCE_SSL_ADMIN', true) 的话,保留;没有就加上,确保后台强制 HTTPS。
浏览器访问时怎么绕过“您的连接不是私密连接”?
这是最常卡住人的一步。本地自签名证书不会被 Chrome/Firefox 信任,但你可以临时放行:
- Chrome:在报错页敲
thisisunsafe(不用输入框,直接键盘敲),页面会刷新并进入 - Firefox:点“高级” → “接受风险并继续”
- 更稳妥做法:把刚才生成的
www.tp.com.crt导入系统根证书(Windows:双击证书 → “安装证书” → 选择“受信任的根证书颁发机构”;macOS:钥匙串访问 → 双击 → “始终信任”) - 别用
localhost测 HTTPS——浏览器对 localhost 的 HTTPS 处理特殊,优先用自定义域名如www.tp.com并配好 hosts
真正上线时,这些自签名操作全部弃用,换 Let's Encrypt + 正式域名;但本地开发阶段,这套流程能让你完整验证 HTTPS 下 WordPress 的行为,包括登录态、REST API、媒体上传路径等——这些细节一旦忽略,上线后容易出静默故障。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











