phpenv分windows图形版(phpenv.cn)与类unix命令行版(phpenv.org),二者不兼容;windows用户须用官网安装包,禁用github版,安装路径勿含中文或空格,需勾选创建桌面快捷方式,端口冲突时通过配置修改并重启服务,站点需新建并自动写入hosts,命令行版安装后必须source配置文件激活shims机制。

PHPEnv 不是“装上就能跑”的傻瓜工具,它分 Windows 图形版(phpenv.cn)和类 Unix 命令行版(phpenv.org),两者完全不兼容。选错类型,后面所有操作都会失败。
Windows 用户别碰 phpenv.org,直接用 phpenv.cn 官网安装包
你在 GitHub 或 GitCode 上搜到的 phpenv(比如 git clone https://gitcode.com/gh_mirrors/ph/phpenv)是给 macOS/Linux 用的命令行版本,依赖 bash、curl、make 等底层工具,在 Windows 上默认跑不起来。Windows 用户唯一正路是访问 https://www.phpenv.cn/ 下载带图形界面的安装程序。
安装时注意三点:
- 安装路径不能含中文或空格,推荐
C:\phpenv或D:\phpenv - 避开
C:\Program Files—— Windows 权限机制会让 Apache 写日志、MySQL 创建数据目录失败 - 务必勾选“创建桌面快捷方式”,后续启停服务全靠它
启动失败?先查端口占用,别急着重装
点“启动”后 Apache/MySQL 仍是红色,大概率是 80 或 3306 端口被占。常见抢端口的程序有:IIS、Skype、其他集成环境(如 XAMPP、WAMP)、甚至某些国产安全软件。
解决方法很直接:
- 打开 PHPEnv 控制面板 → 点击“配置” → “端口检测”,它会列出当前占用情况
- 如果 80 被占,把 Apache 端口改成
8080;3306 被占,MySQL 改成3307 - 改完必须点“保存配置”,再点“重启服务”,仅“启动”无效
改端口后,浏览器访问地址要同步调整,比如 http://localhost:8080 而不是 http://localhost。
运行 PHP 文件前,确认站点根目录和 hosts 设置
PHPEnv 不是双击 PHP 文件就执行,它走的是 Web Server 流程:请求 → Apache → 解析 PHP → 返回 HTML。所以你写的 index.php 必须放在它认的网站根目录里。
默认站点根目录是:C:\phpenv\www(或你安装时指定的 xxx\www)。把文件放进去只是第一步,还有两个关键动作:
- 在 PHPEnv 主界面点击“新建站点”,填域名(如
test.local)、根目录(如C:\phpenv\www\myproject) - 勾选“新增站点后自动写入 hosts”,它会帮你往
C:\Windows\System32\drivers\etc\hosts加一行:127.0.0.1 test.local
不设 hosts,浏览器输 test.local 就会 DNS 失败;不建站点,Apache 根本不知道该把请求路由到哪。
命令行版 phpenv(Linux/macOS)安装后必须 reload shell
如果你在终端执行了 git clone 和 export PATH,但敲 phpenv --version 报 command not found,问题几乎肯定出在 shell 没重载。
别只改了 ~/.bashrc 就以为完事——你得让当前终端真正读进去:
- Bash 用户运行:
source ~/.bashrc - Zsh 用户运行:
source ~/.zshrc - 或者干脆新开一个终端窗口
漏掉这步,phpenv init - 的 shims 机制压根没激活,所有 phpenv install、phpenv local 都不会生效。
最常被忽略的其实是“作用域层级”:用 phpenv local 8.3.13 设定的版本,只对当前文件夹及子文件夹生效;一旦 cd 到别的目录,就退回到全局版本。调试时切错目录,php -v 显示的版本可能根本不是你以为的那个。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











