在PHP项目开发中,队列处理、WebSocket服务、定时任务触发器等场景都需要运行常驻进程,但是PHP进程本身不具备自动守护能力,意外退出后需要手动重启,非常影响业务稳定性。Supervisor是一款基于Python的进程管理工具,能够自动监控并重启退出的进程,配合宝塔面板的图形化操作,配置起来非常便捷。

一、在宝塔面板安装Supervisor
宝塔面板自带了Supervisor的插件,安装过程非常简单:
- 登录宝塔面板,点击左侧导航栏的软件商店
- 在应用搜索框中输入Supervisor,找到对应插件后点击安装
- 等待安装完成,安装成功后插件会出现在已安装列表中,点击设置即可进入配置页面
二、准备PHP常驻进程脚本
首先需要一个可以持续运行的PHP脚本,以下是一个简单的队列消费脚本示例,模拟持续处理队列任务:
<?php
// 模拟队列消费常驻进程
while (true) {
// 模拟从队列获取任务
$task = 'task_' . time();
echo "处理任务:" . $task . PHP_EOL;
// 模拟任务处理耗时
sleep(3);
}
将脚本保存为queue_worker.php,上传到服务器目录,例如/www/wwwroot/php_project/。
三、配置Supervisor管理PHP进程
进入Supervisor的设置页面后,按照以下步骤添加进程配置:
1. 添加进程
点击添加进程按钮,填写以下配置项:
| 配置项 | 填写说明 |
|---|---|
| 进程名称 | 自定义名称,例如php_queue_worker,用于标识进程 |
| 运行目录 | PHP脚本所在目录,例如/www/wwwroot/php_project/ |
| 启动命令 | PHP可执行文件路径加脚本路径,宝塔默认的PHP路径通常是/www/server/php/74/bin/php(根据安装的PHP版本调整),完整命令为/www/server/php/74/bin/php queue_worker.php |
| 进程数量 | 需要启动的进程副本数,根据业务需求填写,默认为1 |
| 自动启动 | 选择是,服务器重启后自动启动该进程 |
| 自动重启 | 选择是,进程意外退出后自动重启 |
| 标准输出日志 | 日志保存路径,例如/www/wwwroot/php_project/logs/worker_stdout.log |
| 错误输出日志 | 错误日志保存路径,例如/www/wwwroot/php_project/logs/worker_stderr.log |
2. 启动进程
配置完成后点击确定,回到进程列表页面,找到刚添加的进程,点击启动按钮,进程状态变为运行中即表示配置成功。
四、验证监控效果
可以通过以下方式验证Supervisor的监控功能是否正常:
- 查看进程状态:在Supervisor进程列表中可以看到进程的运行时长、状态等信息
- 测试自动重启:通过
kill命令手动终止PHP进程,等待几秒后刷新Supervisor页面,会看到进程已经自动重启,状态恢复为运行中 - 查看日志:打开配置的日志文件,可以看到PHP脚本输出的内容,方便排查问题
五、常见问题排查
- 进程启动失败:检查启动命令中的PHP路径是否正确,脚本是否有语法错误,可以通过手动执行启动命令排查问题
- 日志没有输出:检查日志目录是否存在,目录权限是否足够,确保运行Supervisor的用户有写入权限
- 进程频繁重启:检查PHP脚本是否存在致命错误,查看错误日志定位问题,也可以调整Supervisor的重启策略,避免频繁重启
注意:如果PHP脚本需要读取环境变量或者依赖特定配置文件,需要在启动命令中提前声明,或者在运行目录的PHP配置中提前设置好相关参数。
宝塔面板SupervisorPHP常驻进程进程监控修改时间:2026-06-15 22:42:32