phpEnv是两类工具:Windows图形化集成环境(phpenv.cn出品)和类Unix命令行多版本管理器(Git仓库版),二者名称相似但生态、安装及用途完全不兼容。

PHPEnv 不是单一工具,而是两类完全不同的东西:Windows 图形化集成环境(phpenv.cn 出品),和类 Unix 系统下的命令行多版本管理器(phpenv,Git 仓库在 gitcode.com/gh_mirrors/ph/phpenv)。选错方向,安装就直接卡死。
Windows 用户别装错:认准 phpenv.cn 官网下载安装包
如果你用的是 Windows,且目标是“开箱即用跑 PHP 页面”,那你要的不是 GitHub 上那个 phpenv,而是官网 www.phpenv.cn 提供的图形化集成环境。它自带 Apache、MySQL、PHP(多个版本可选)、Redis、Nginx 切换开关,点几下就能建站。
- 下载后双击
phpenv-setup.exe,全程下一步,但安装路径必须避开C:\Program Files和任何含中文、空格的目录,推荐D:\phpenv - 安装完首次运行,会自动检测并安装默认组件(Apache + MySQL + PHP 8.2),等进度条走完,面板上两个服务变绿才算成功
- 如果 Apache 启动失败,大概率是 80 端口被 Skype、IIS 或其他软件占了;点“配置 → 端口检测”,改成
8080再试 - 新增站点时,目录路径要填绝对路径(如
D:\myproject),不能用~/或相对路径,否则访问 403 或 404
macOS/Linux 用户要装对:用 git clone + shell 初始化
如果你在 macOS 或 Linux 终端里敲 phpenv --version 报 “command not found”,说明你还没装命令行版 phpenv——它不提供安装包,只靠源码+手动配置生效。
- 先执行:
git clone https://gitcode.com/gh_mirrors/ph/phpenv ~/.phpenv - 再根据你的 shell 类型追加两行到配置文件:
– Bash 用户写进~/.bashrc:export PATH="$HOME/.phpenv/bin:$PATH"和eval "$(phpenv init -)"
– Zsh 用户写进~/.zshrc,内容一样 - 最后重载配置:
source ~/.bashrc(或source ~/.zshrc),再运行phpenv --version验证 - 注意:
phpenv本身不带 PHP 编译器,得额外装php-build插件才能phpenv install 8.3.13;没装插件就直接 run install,会报错 “No known versions”
常见混淆点:phpenv vs. phpenv.cn —— 名字像,但完全不兼容
两者名字只差一个点,但生态、用途、安装方式、配置逻辑全都不通。混用会导致路径错乱、命令失效、甚至覆盖系统 PHP。
立即学习“PHP免费学习笔记(深入)”;
- Windows 图形版(
phpenv.cn)的 PHP 是预编译好的二进制,放在D:\phpenv\php\php-8.2.12\这类路径下,通过界面切换,不修改 PATH,也不影响终端里的php命令 - 命令行版(
phpenv)靠 shims 机制劫持php、phpize等命令,所有调用都经由~/.phpenv/shims/路由,必须初始化 shell 才能生效,关掉终端就失效 - 你在 Windows 上用
phpenv.cn配好 Laravel 项目,想切 PHP 7.4,点界面按钮就行;但在 macOS 上用命令行phpenv,就得先phpenv install 7.4.33,再phpenv local 7.4.33,少一步都跑不起来
最常被忽略的一点:图形版 phpenv.cn 的“PHP 版本切换”只影响 Web 服务(Apache/Nginx 解析),不影响你终端里 php -v 输出;而命令行 phpenv 只影响终端命令,对本地 Web 服务完全无感。搞不清这个边界,调试时就会发现“网页跑的是 8.2,但命令行里 php -v 显示 7.4,composer install 却报错”,其实是两个世界各自运行。



















