如何在宝塔面板部署Workerman 5.2.3服务

陌磊吖_6919

陌磊吖_6919

2026-10-24

495人浏览

原创

部署workerman 5.2.3到宝塔需满足php≥7.4且启用pcntl/posix/sockets扩展、禁用disable_functions中的proc_open;项目须独立于网站目录,启动文件调用worker::runall();必须用supervisor守护(非-d参数单独运行),并开放对应端口及云服务器安全组。

如何在宝塔面板部署workerman 5.2.3服务

要部署 Workerman 5.2.3 服务到宝塔面板,关键不是“安装 Workerman”,而是让 PHP 环境能运行它,并用守护进程确保长期稳定运行。Workerman 是纯 PHP 编写的异步框架,不依赖 Web 服务器(如 Nginx),但需 PHP 支持特定扩展、正确权限和进程管理。

以下是清晰、可落地的操作步骤:

确保 PHP 环境满足最低要求

Workerman 5.2.3 要求:

  • PHP ≥ 7.4(推荐 7.4–8.2,不支持 PHP 8.3+)
  • 必装扩展:pcntl、posix、sockets(缺一不可)
  • proc_open 函数不能被禁用(检查 PHP 配置中 disable_functions 是否含该函数)

操作路径:
宝塔 → 软件商店 → 找到已安装的 PHP 版本(如 PHP 7.4)→ 点击【设置】→ 【安装扩展】→ 勾选 pcntl、posix、sockets → 安装完成
再点【配置修改】,搜索 disable_functions,删掉 proc_open(如有),保存并重启 PHP

创建独立的 Workerman 项目目录

不要把 server.php 放在网站根目录下(如 /www/wwwroot/xxx),避免被 Web 服务器误解析或权限干扰。
推荐路径:
/www/workerman/myapp/(自定义名,与网站目录隔离)

上传或编写你的启动文件,例如:
/www/workerman/myapp/server.php
内容需包含 Workerman 5.2.3 的标准写法(注意命名空间和类引用):

<?php use Workerman\Worker;
use Workerman\Connection\TcpConnection;

require_once '/www/wwwroot/myproject/vendor/autoload.php'; // 指向你 Composer 的 autoload

$worker = new Worker('websocket://0.0.0.0:2346');
$worker->count = 2;

$worker->onMessage = function(TcpConnection $connection, $data) {
    $connection->send('Hello from Workerman 5.2.3');
};

Worker::runAll();

✅ 提示:确认 vendor/autoload.php 路径真实存在;若用 composer create-project workerman/workerman 初始化,需先在该目录执行 composer install

使用 Supervisor 守护进程(强烈推荐)

Workerman 进程退出后不会自动重启,必须用进程管理器。宝塔自带 Supervisor(软件商店中安装即可)。

操作步骤:
宝塔 → 软件商店 → 搜索 “Supervisor” → 安装
安装后 → 进入 Supervisor 管理页 → 【添加进程】
填写:

  • 名称:my-workerman-app
  • 启动命令:/usr/bin/php /www/workerman/myapp/server.php start -d
  • 运行目录:/www/workerman/myapp
  • 用户:www(保持与网站一致,避免权限问题)
  • 自启动:✅ 开启

点击提交后,状态显示 “RUNNING” 即成功。

btpanel phpsite 宝塔面板PHP网站
btpanel phpsite 宝塔面板PHP网站

宝塔面板 PHP 网站管理:站点创建、删除、启停、PHP 版本切换、域名管理、SSL证书管理、伪静态管理、数据库管理

下载

开放并验证端口

Workerman 默认监听非标准端口(如 2346),需手动放行:

  • 宝塔 → 安全 → 放行端口 → 输入 2346 → 添加
  • 云服务器厂商控制台(如阿里云/腾讯云)安全组中,同样开放 2346/tcp 入方向

验证是否监听成功:
终端执行

netstat -tuln | grep :2346

看到 LISTEN 表示服务已启动。

(可选)反向代理接入 Web 域名(如 ws.mydomain.com)

若前端需通过域名连接 WebSocket,不建议直接暴露 IP+端口。可在宝塔中:

  • 创建新站点(如 ws.mydomain.com)
  • 网站设置 → 反向代理 → 添加
    • 目标URL:http://127.0.0.1:2346
    • 开启 Websocket 支持(勾选“启用 Websocket”)
  • 申请 SSL 证书(支持 wss://)

这样前端可安全使用 wss://ws.mydomain.com 连接。

不复杂但容易忽略

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
开发工具有哪些
开发工具有哪些

开发工具有:1、集成开发环境IDE;2、版本控制系统VCS;3、自动化构建工具;4、测试工具;5、代码分析工具。本专题为大家提供开发工具有哪些的相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.02

2806

5

Workerman安装配置教程
Workerman安装配置教程

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

2026.05.20

206

15

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

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

2026.05.20

222

12

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

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

2026.05.20

207

13

Gradle插件开发入门教程
Gradle插件开发入门教程

本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。

2026.10.22

20

11

Gradle Wrapper配置教程
Gradle Wrapper配置教程

本专题介绍Gradle Wrapper的基本作用,涵盖文件组成、生成方法、版本配置和任务调用,帮助你理解项目如何使用指定的Gradle版本,减少不同开发环境带来的构建差异。

2026.10.22

20

10

Golangci-lint检查器使用教程
Golangci-lint检查器使用教程

本专题整理Golangci-lint常用Linters的用途与配置方法,覆盖错误处理、无效代码、安全、复杂度、命名和依赖检查,帮助项目合理选规则。

2026.10.22

20

15

Gradle怎么构建Java项目
Gradle怎么构建Java项目

本专题介绍Gradle Java项目构建方法,涵盖Java插件配置、依赖声明、源码编译、测试执行和打包检查,帮助你理解各阶段的任务关系,逐步完成项目构建。

2026.10.22

0

10

PHP时间戳漏洞修复教程
PHP时间戳漏洞修复教程

本专题汇总PHP常见时间戳漏洞,包括2038年溢出、时区漂移、时间戳伪造、重放攻击、时间盲注与日志审计失效等,并给出升级64位环境、使用 DateTimeImmutable、统一UTC、严格超时校验、预处理绑定、hash_equals 比对等修复方案,帮助开发者快速排查和加固时间相关代码。

2026.10.22

20

25

热门下载

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

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
宝塔入门指引手册
宝塔入门指引手册

共0课时 | 0人学习

宝塔官方实践教程
宝塔官方实践教程

共0课时 | 0人学习