CentOS 7生产环境使用supervisor启动Laravel Websocket无法连接问题求助
问题修复步骤
1. 修正websockets.conf配置错误
当前你的配置存在3处明显问题:
- command行的
/usr/bin/php和artisan路径之间缺少空格,属于命令语法错误 - host参数格式错误,
0.0.0.0.0(cpanel-real -ip_address)为无效写法,要么写0.0.0.0监听所有网卡,要么直接写服务器真实IP numprocs=1 autostart=true两个参数写在同一行,不符合supervisor配置规范,必须每行一个配置项
修正后的完整配置:
[program:websockets] command=/usr/bin/php /home/cpanel_real_user_name/artisan websockets:serve --host 0.0.0.0 --port 6001 numprocs=1 autostart=true autorestart=true user=root ; 新增日志配置方便后续排查问题 stdout_logfile=/var/log/websockets.out.log stderr_logfile=/var/log/websockets.err.log
2. 重载supervisor配置生效
你修改supervisord.conf的include后缀为*.conf后,没有重载supervisor服务,导致配置未被加载,执行以下命令操作:
- 确认
/etc/supervisord.conf的include段配置为:
[include] files = supervisord.d/*.conf
- 重载supervisor配置,加载新增的websockets进程:
supervisorctl reread supervisorctl update
- 启动websockets进程:
supervisorctl start websockets
- 执行以下命令确认进程运行状态:
supervisorctl status
正常返回会显示websockets进程状态为RUNNING。
3. 后续服务连通性排查(可选)
如果进程正常运行但前端无法连接websockets服务,检查以下配置:
- CentOS7防火墙开放6001端口:
firewall-cmd --add-port=6001/tcp --permanent firewall-cmd --reload
- 如果你站点配置了HTTPS,需要为websockets配置SSL证书,或者用Nginx反向代理6001端口对外提供wss服务
- 确认
config/broadcasting.php和resources/js/bootstrap.js的端口、IP、SSL配置与服务端监听参数一致
内容的提问来源于stack exchange,提问作者mohamed allam
相关产品推荐
相关产品推荐

