先确认占用端口的进程,再选择结束进程或修改服务端口;常见如apache的80、mysql的3306被占时,可用netstat查pid、tasklist查进程名,非系统进程用taskkill终止,系统服务需在services.msc中禁用,或修改httpd.conf、my.ini、www.conf等配置文件更换端口并重启对应服务。

PHPEnv 启动失败、Apache 或 MySQL 显示红色(未启动),八成是端口被占了。最常见的是 80(Apache)和 3306(MySQL)被 Skype、IIS、VMware、甚至另一个 PHPEnv 实例抢先绑定了。别急着删软件,改端口更稳妥。
查清楚哪个端口被谁占了
先确认问题根源,避免盲目修改:
- 打开命令提示符(管理员权限),运行
netstat -ano | findstr :80,看最后一列 PID;再用tasklist | findstr 1234(把 1234 换成你看到的 PID)查进程名 - 常见“真凶”:
System(其实是 HTTP.sys,PID 常为 4,不能直接杀)、Skype.exe、sqlservr.exe、vmware-hostd.exe - 如果 PID 是 4,说明系统级服务占了
80,这时改端口比关服务更安全
改 Apache 端口(对应 httpd.conf)
PHPEnv 的 Apache 配置文件路径通常是 PHPEvn\Apache\conf\httpd.conf,关键改两处:
- 搜
Listen 80,改成比如Listen 8081 - 搜
ServerName localhost:80,同步改成ServerName localhost:8081 - 如果用了虚拟主机,还要检查
<virtualhost></virtualhost>块,把里面的:80全换成新端口 - 保存后,在 PHPEnv 主界面点“重启 Apache”,不要只点“启动”
改 MySQL 端口(对应 my.ini)
MySQL 配置文件一般在 PHPEvn\MySQL\my.ini,重点改这一行:
- 找到
port=3306,改成比如port=3307 - 改完必须重启 MySQL 服务,否则 PHP 连不上——哪怕你只改了 PHP 的数据库配置,底层还是连不到旧端口
- 别忘了同步更新 PHP 项目里的数据库连接配置:ThinkPHP 要在
config/database.php里加'port' => 3307;Laravel 要改.env中的DB_PORT=3307
PHP-FPM 端口也得核对(www.conf)
如果你用的是 Nginx + PHP-FPM 模式(PHPEnv 支持切换),9000 端口也可能冲突:
- 配置文件路径一般是
PHPEvn\php\php-fpm.d\www.conf - 找
listen = 127.0.0.1:9000,改成listen = 127.0.0.1:9001 - 然后去 Nginx 的
server块里,把fastcgi_pass 127.0.0.1:9000也同步改成9001 - 改完要分别重启 PHP-FPM 和 Nginx,缺一不可
端口不是改完就完事——Apache 和 MySQL 的配置文件路径因 PHPEnv 版本和安装路径略有差异,务必确认你编辑的是当前启用版本对应的文件;改完不重启服务,等于没改。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











