PHPEnv 启动后 Apache 和 MySQL 显示红色,主因是 80/3306 端口被占用或安装路径含中文/空格;应改端口、用纯英文路径,并确保 hosts 正确配置及手动启动服务。

PHPEnv 官方绿色版不用安装、不改注册表、不依赖 VC 运行库,直接解压就能用——但很多人卡在「双击启动后 Apache 和 MySQL 一直是红色」这一步。根本原因不是软件坏了,而是端口被占或路径含中文/空格。
为什么 PHPEnv 启动后 Apache 和 MySQL 一直红色?
官方绿色版本质是便携式服务封装,它默认尝试绑定 80(Apache)和 3306(MySQL)端口。Windows 下这两个端口极易被 IIS、Skype、甚至某些国产软件后台进程抢占。
- 先点控制面板右上角「配置」→「端口检测」,看
80和3306是否显示「已被占用」 - 若被占,不要强行关掉其他程序;直接在「配置」→「Apache 设置」里把端口改成
8080,MySQL 改成3307 - 改完必须点「保存」再点「重启服务」,只改不保存等于没改
- 如果安装路径含中文(如
D:\我的开发环境\phpenv)或空格(如C:\Program Files\phpenv),服务大概率静默失败——换到D:\phpenv这类纯英文无空格路径重试
新增站点时浏览器打不开,提示“无法访问此网站”
绿色版默认不自动写入 hosts,也不会帮你配 DNS。你手动添加的站点域名(比如 test.local)在浏览器里只是个字符串,没解析就永远连不上。
- 打开 PHPEnv 控制面板 →「开始」→「软件设置」→「高级设置」,勾选「新增站点后自动写入 hosts」
- 新增站点时,域名栏填
test.local,根目录选实际项目文件夹(如D:\projects\myapp),别选错父级目录 - 如果已新增但没生效,可手动编辑系统
C:\Windows\System32\drivers\etc\hosts,末尾加一行:127.0.0.1 test.local - 改完 hosts 后,浏览器要清 DNS 缓存:Chrome 地址栏输
chrome://net-internals/#dns→ 点「Clear host cache」
怎么让 VS Code 直接用 PHPEnv 的 PHP 解释器?
绿色版不改系统环境变量,所以 VS Code 默认找不到 php 命令。硬配绝对路径又容易随版本升级失效——正确做法是走 PHPEnv 自带的「PHP 版本管理」通道。
立即学习“PHP免费学习笔记(深入)”;
- PHPEnv 控制面板里,先在「软件管理」中装好你要用的 PHP 版本(如
8.2.12) - 进「配置」→「环境设置」→「PHP 路径」,点右侧「浏览」,定位到
phpenv\php\php-8.2.12\php.exe(注意不是php-cgi.exe) - VS Code 中打开项目,按
Ctrl+Shift+P→ 输入「PHP: Select Interpreter」→ 选「Enter path to PHP interpreter」→ 粘贴上面那个php.exe的完整路径 - 验证:新建
test.php,写<?php phpinfo(); ?>,右键「Open in Default Browser」,看到页面且顶部显示的 PHP 版本跟你选的一致才算成功
切换 PHP 版本后 Composer 报错“PHP version does not satisfy requirement”
Composer 检查的是当前 shell 中 php -v 返回的版本,而 PHPEnv 绿色版的版本切换只影响它自己面板里的服务和 Web 请求,不影响命令行终端。
- 不要在 CMD 或 PowerShell 里直接敲
php -v测——那调用的是系统 PATH 里的旧 PHP,跟 PHPEnv 无关 - PHPEnv 自带一个「CMD」按钮(在主界面左下角),点它打开的终端才是绑定当前 PHP 版本的环境
- 或者手动把 PHPEnv 的 PHP 路径加进当前终端的临时 PATH,例如:
set PATH=D:\phpenv\php\php-8.2.12;%PATH% - Composer 本身也支持强制指定 PHP 路径:
php composer.phar install,只要前面的php指向对了就行
最易忽略的一点:绿色版每次重启电脑后,Apache 和 MySQL 不会自启,得手动点「启动」;如果设置了开机自启,反而可能因权限不足失败——它本质上还是个用户态程序,别把它当 Windows Service 用。



















