讲师中心 微信公众号
AI工具推荐 视频效率加速

Workerman安装后start命令无效怎么办

夏墨君_4508

夏墨君_4508

发布时间:2026-09-03 09:18:27

|

334人浏览过

|

来源于php中文网

原创

Workerman执行start命令无反应或直接退出,本质是master启动后因Fatal Error导致worker进程未创建;需检查autoload路径、PHP语法、ZTS模式、pcntl/sockets扩展、禁用函数、监听地址及端口权限。

workerman安装后start命令无效怎么办

start命令执行后无反应或直接退出

Workerman 的 php start.php start 命令看似执行成功,但实际没监听端口、ps aux | grep WorkerMan 看不到 worker 进程,本质是主进程启动后因异常快速退出,systemd 或 shell 都来不及捕获日志。这不是“命令无效”,而是启动流程在 onWorkerStart 或更早阶段就 fatal error 了。

立刻检查以下几处:

  • 打开 start.php,确认 require_once __DIR__ . '/vendor/autoload.php'; 在最前,且路径正确(vendor 目录存在、autoload.php 可读)
  • 运行 php -l start.php 检查语法错误;再用 php start.php start -d=false 强制前台运行,看控制台是否输出 Fatal error 或 Parse error
  • 若报 Class 'Workerman\Worker' not found,说明 workerman/workerman 未被 autoload 加载——检查 composer.json 中 "autoload" 是否漏配,或手动加 require_once __DIR__.'/vendor/workerman/Worker.php';
  • Windows 下未加 -d 参数却用了 --daemon=1,会导致 fork 失败后静默退出;必须用 php start.php start -d(仅 Windows)

执行 start 后提示 “Start success” 但 ss -tuln 查不到监听

“Start success” 只表示 master 进程起来了,不代表 worker 子进程已就绪。真正提供服务的是 worker 进程,它由 master fork 出来,而 fork 失败时 master 不报错也不退出,只是不拉起 worker。

重点排查:

  • php -i | grep "thread safety" 输出 enabled?ZTS 模式会令 pcntl_fork() 静默失败,必须换用 NTS 版 PHP
  • php -m | grep pcntl 和 php -m | grep sockets 必须都有输出;任一缺失,worker 就无法创建
  • php -i | grep disable_functions 确认 pcntl_fork、stream_socket_server 不在禁用列表里
  • 检查 start.php 中 new Worker('tcp://0.0.0.0:2345') 的地址写法——若写成 127.0.0.1 或本机公网 IP(如腾讯云非绑定 IP),ss -tuln 会显示 127.0.0.1:2345 而非 *:2345,外部连接必然失败

start 命令报错 “Address already in use” 或 “Permission denied”

这两类错误都发生在 stream_socket_server() 调用时,属于系统级拒绝,Workerman 无法绕过。

对应处理方式很明确:

  • Address already in use:不是端口“被占用”,而是上一次 Workerman 没正常 stop,残留了 socket。先跑 killall php 或 ps aux | grep Worker | awk '{print $2}' | xargs kill -9,再 ss -tuln | grep :2345 确认清空,最后 php start.php start
  • Permission denied:分两种情况:
    – 端口号 ≤ 1024(如 80、443),Linux 要求 root 权限,开发阶段请改用 8080 等高位端口;
    – 绑定地址写错,比如填了云服务器的公网 IP(实际不属于该机器),必须统一用 0.0.0.0
  • 如果是 Docker 容器内启动,除了 -p 2345:2345,容器内 Worker 构造函数也必须是 'tcp://0.0.0.0:2345',不能是 127.0.0.1

systemd 下 start 命令始终 inactive (dead)

在 systemd 里执行 php start.php start 却看不到进程,几乎全是配置误用导致的。systemd 不是 shell,它对进程模型有硬性要求。

必须核对三项:

  • ExecStart 命令末尾**不能带 -d 或 --daemon=1**,必须用 --daemon=0(v5+)或 start -d=false(v4),否则主进程 fork 后 exit,systemd 认为启动失败
  • Type= 必须是 simple,绝不能写 forking;Workerman 不符合传统 daemon 的父子进程分离模型
  • User= 必须是非 root 用户(如 www-data),否则 bind() 会因权限被拒;同时确保该用户对项目目录有读写权限(尤其是 runtime/ 和日志路径)

验证时别反复 start/stop,先跑 sudo journalctl -u your-service-name -f 实时盯住输出,90% 的问题日志里第一行就写了原因。

热门AI工具

更多
咔片AIPPT

一款在线AI演示文稿制作工具,可根据主题和内容需求辅助生成PPT结构与页面,提高演示材料制作效率。

音述AI
音述AI Hot

一款AI音频处理工具,主要用于音述AI是一个以“用声音述说故事”为核心的 AI 音乐创作与声音分享社区,适合需要提升相关任务效率的用户。

PixPix
PixPix Hot

PixPix是一款面向电商视觉生产的AI商品图生成工具。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

UpDream
UpDream Hot

一款AI视频创作工具,主要用于哔哩哔哩推出的自研AI视频创作工具,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

SkildArt
SkildArt Hot

SkildArt是一款AI文本写作工具,一站式 AI 视觉创作平台。

花生AI
花生AI Hot

一款AI视频创作工具,主要用于B站推出的AI视频创作工具,适合需要提升相关任务效率的用户。

相关专题

更多
Workerman安装配置教程
Workerman安装配置教程

Workerman安装配置教程专题提供Workerman安装配置、WebSocket开发、TCP通信、异步编程、高并发服务搭建与PHP实时通信开发教程。

226

2026.05.20

Workerman实时通信与长连接开发教程
Workerman实时通信与长连接开发教程

WWorkerman实时通信与长连接开发教程聚合实时通信、聊天室、长连接、消息推送、AI流式输出等Workerman高并发开发内容。

222

2026.05.20

Workerman异步通信与TCP服务器开发
Workerman异步通信与TCP服务器开发

Workerman异步通信与TCP服务器开发专题整理Workerman异步通信、TCP服务、HTTP服务、WebSocket开发与高并发PHP服务器教程。

227

2026.05.20

Postman身份认证怎么配置
Postman身份认证怎么配置

本专题从实际API接口调试场景出发,讲解Postman身份认证的完整配置流程,包括常见认证协议介绍、授权参数设置、访问令牌填写、OAuth 2.0授权及认证失败排查,帮助用户正确完成接口授权与访问验证。

0

2026.11.06

Postman请求头Headers怎么设置
Postman请求头Headers怎么设置

围绕Postman HTTP请求头配置展开,讲解Headers选项的具体使用方式,包括Key和Value参数填写、请求头信息添加、常见Header字段设置及请求头修改方法,帮助用户解决接口调试过程中遇到的请求头配置问题。

0

2026.11.06

Postman接口请求发送教程
Postman接口请求发送教程

详细介绍Postman接口请求的创建与发送方法,涵盖GET和POST请求、URL配置、请求参数、Headers请求头、Body请求体设置以及响应结果查看,帮助用户掌握Postman接口请求的完整操作流程。

0

2026.11.06

DBeaver怎么导入数据
DBeaver怎么导入数据

DBeaver数据导入专题,整理Excel、CSV、SQL、TXT等常见文件的数据导入方法,涵盖目标数据库选择、数据表创建、字段映射、数据类型设置及导入参数配置等操作,帮助用户将本地文件中的数据写入数据库,并了解批量导入、重复数据处理和导入失败等常见问题的解决方法。

20

2026.11.05

DBeaver安全防护教程大全
DBeaver安全防护教程大全

DBeaver安全防护专题,围绕数据库连接安全、账号密码保护和访问权限管理展开,整理SSL/TLS加密连接、SSH隧道、数据库凭据保存及证书验证等配置方法,同时介绍敏感信息保护、远程连接风险和高权限账号使用等注意事项,帮助用户提高数据库日常管理的安全性。

20

2026.11.05

DBeaver连接创建与配置教程
DBeaver连接创建与配置教程

本专题聚焦DBeaver数据库连接配置与管理,覆盖从新建连接、选择数据库类型到填写连接参数和验证连接的完整流程。针对MySQL、PostgreSQL、SQL Server等常见数据库,整理相应的连接设置方法,并提供驱动缺失、认证失败和连接异常等问题的排查方向。

20

2026.11.04

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Webman中文手册
Webman中文手册

共0课时 | 0人学习

Workerman官方手册
Workerman官方手册

共0课时 | 0人学习

ThinkPHP5.1完全开发手册
ThinkPHP5.1完全开发手册

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn