windows服务管理器不显示php-fpm,因其默认不在windows上作为系统服务运行;若已手动注册,可在services.msc中找到对应服务名(如php81-fpm)并右键停止或禁用,否则应通过taskkill结束php-cgi.exe/php-fpm.exe进程。

Windows 服务管理器本身不会直接显示 php-fpm 作为一项系统服务,因为 PHP-FPM 在 Windows 上默认不以 Windows 服务形式运行——它通常由 Web 服务器(如 Nginx)通过 FastCGI 方式调用,或由集成环境(如 XAMPP、WAMP、Laragon)自行托管为后台进程,而非注册为标准 Windows 服务。
但如果你确实看到 php-fpm 出现在 services.msc 列表中,说明它已被手动注册为 Windows 服务(例如通过 sc create 或第三方工具),此时可按以下方式停止:
✅ 正确停止方式(仅当 php-fpm 已注册为 Windows 服务时)
打开服务管理器
按Win + R→ 输入services.msc→ 回车查找服务名
在服务列表中找名称含php-fpm的项(注意:不是“显示名称”而是“服务名称”,可能叫phpfpm、php-fpm81、php81-fpm等,大小写敏感)右键停止
右键该服务 → 选择「停止」
✔️ 若灰色不可点,说明未运行,无需操作(可选)禁用开机自启
右键 → 「属性」→ 「启动类型」改为「禁用」→ 点击「应用」
⚠️ 常见误区与替代处理方式
-
XAMPP / WAMP / Laragon 用户:
它们不把 php-fpm 注册为 Windows 服务,而是通过控制面板启动/停止。应:- 点击系统托盘图标 → 「Stop All Services」
- 或打开对应面板界面 → 手动关闭 PHP(注意:WAMP 默认用
php-cgi.exe,非php-fpm.exe)
-
手动安装的 PHP-FPM:
Windows 版 PHP 官方二进制包不含php-fpm.exe(仅 Linux/macOS 支持原生 FPM)。若你有php-fpm.exe,大概率是:- 自行编译的非官方版本
- 第三方打包(如 XAMPP 衍生版)
- 误将
php-cgi.exe当作php-fpm.exe使用
✅ 此时更可靠的方式是:
- 打开任务管理器 → 「详细信息」页签 → 查找
php-cgi.exe或php-fpm.exe - 右键 → 「结束任务」
- 或命令行管理员执行:
taskkill /f /im php-cgi.exe taskkill /f /im php-fpm.exe
-
Nginx + PHP-FPM 场景:
即使php-fpm进程在跑,它也不是 Windows 服务,而是由 Nginx 启动的子进程。停止方法是:- 先停 Nginx:
nginx -s stop或任务管理器结束nginx.exe - 再检查并结束残留:
taskkill /f /im php-cgi.exe
- 先停 Nginx:
? 如何确认 php-fpm 是否真的在 Windows 上运行?
运行以下命令(管理员或普通权限均可):
where php-fpm.exe tasklist /fi "imagename eq php-fpm.exe" tasklist /fi "imagename eq php-cgi.exe"
- 若
where无输出 → 系统没有php-fpm.exe文件 - 若
tasklist显示进程 → 正在运行,但不属于 Windows 服务体系,需用taskkill清理
不复杂但容易忽略:Windows 下真正意义上的 php-fpm 极少见,多数情况你面对的是 php-cgi.exe 或集成环境的封装逻辑。盯住进程,而不是服务列表。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











