CMD运行php命令无响应挂死 直接执行php.exe正常问题求助
排查解决步骤
1. 验证PHP命令实际调用路径
在CMD中执行where php,查看输出的第一条路径是否为C:\Program Files\PHP\v7.3\php.exe:
- 如果输出第一条路径不是目标路径,说明存在历史旧版本残留的PHP二进制文件位于PATH优先级更高的目录(常见为C:\Windows\System32、旧版PHP未清理的安装目录),直接删除对应目录下的
php.exe、php-cgi.exe等PHP相关文件即可。 - 如果输出仅存在目标路径,进入下一步排查。
2. 校验环境变量配置
- 确认PATH变量中添加的是PHP目录路径
C:\Program Files\PHP\v7.3,而非指向php.exe的完整路径 - 确认PHP路径配置在系统变量的PATH中,而非仅配置在当前用户的PATH中(管理员身份启动的CMD默认不加载普通用户的PATH配置)
- 确认路径前后无多余空格、特殊字符,配置完成后需重启CMD窗口生效,必要时可重启设备刷新环境变量缓存。
3. 排查php.ini配置异常
将C:\Program Files\PHP\v7.3目录下的php.ini重命名为php.ini.bak禁用配置文件,再在CMD中执行php -v测试是否正常响应:
- 如果恢复正常,说明配置项存在问题,优先排查以下配置:
- 扩展加载项:是否添加了与PHP7.3版本不匹配的第三方扩展、扩展路径配置错误
- Xdebug配置:是否开启了自动调试、远程调试地址配置错误导致程序一直等待IDE连接,是最常见的PHP无响应原因
- 逐行恢复php.ini配置,定位到导致挂起的具体配置项修改即可。
4. 排查系统别名/映像劫持问题
- 执行
doskey /macros查看是否设置了php相关的命令别名,指向了其他异常程序,如有则删除对应别名 - 打开注册表编辑器,定位到
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options,检查是否存在php.exe子项,如有则删除该子项(映像劫持会强制将php调用重定向到其他程序)。
5. 验证目录权限
右键打开C:\Program Files\PHP\v7.3目录的属性-安全面板,确认当前用户/Users组拥有「读取和执行」「列出文件夹内容」的权限,权限不足时需添加对应权限后重试。
内容的提问来源于stack exchange,提问作者Zakarakus
相关产品推荐
相关产品推荐

