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

Webman CI/CD 实战:利用 GitHub Actions 实现自动化部署

轻强大大_2030

轻强大大_2030

发布时间:2026-06-17 21:55:50

|

626人浏览过

|

来源于php中文网

原创

Webman项目用GitHub Actions做CI/CD可行,但需绕开php-fpm惯性思维,改用webman stop -f与webman start控制Swoole常驻进程,并排除.rsync同步中的.env和runtime目录,避免PID丢失与配置覆盖。

webman ci/cd 实战:利用 github actions 实现自动化部署

Webman 项目用 GitHub Actions 做 CI/CD 是可行的,但必须绕开它默认依赖 php-fpm 管理进程的惯性思维——Webman 是常驻内存的 Swoole/Hyperf 风格框架,部署时不能靠 reload php-fpm,而要控制 webman start / webman stop 进程生命周期。

为什么直接套用 PHP 通用部署模板会失败

多数 PHP 项目的 GitHub Actions 模板(比如用 appleboy/ssh-action reload nginx + php-fpm)在 Webman 上会静默失效:服务看似“重启”了,但旧 worker 进程仍在跑,新代码根本没加载。这是因为 Webman 启动后由 Swoole 主进程托管,不走 FPM 的 fastcgi 通信链路。

常见错误现象包括:

  • 代码已推送,curl 请求返回旧页面或 502
  • SSH 登录服务器执行 ps aux | grep webman,发现多个 webman start 进程并存
  • 日志里反复出现 Address already in use(端口被占),说明 stop 没真正生效

关键步骤:用 ssh-action 正确启停 Webman 进程

核心是让远程服务器上执行的命令能干净地 kill 掉旧进程、再拉起新实例。不能只写 webman start,必须加进程管理逻辑。

推荐做法:

Ainative Git Workflow
Ainative Git Workflow

Git 提交、PR 与分支规范,对 AI 归属零容忍。适用于创建提交、编写提交信息、创建 Pull Request。

下载
  • 在目标服务器上,把 Webman 项目部署到固定路径(如 /var/www/webman),确保 webman 命令全局可用(composer global require webman/console 或加软链)
  • Workflow 中使用 appleboy/ssh-action@v0.1.4(注意不是 v0.1.0,新版支持更稳定的连接重试)
  • stop 步骤必须带 -f 强制终止:cd /var/www/webman && webman stop -f
  • start 步骤建议后台运行并重定向日志:cd /var/www/webman && nohup webman start > /var/log/webman.log 2>&1 &
  • 加个简单健康检查:sleep 3 && curl -s --head http://localhost:8787 | head -n 1 | grep "200 OK"(假设监听 8787)

如何避免 rsync 同步时覆盖 .env 或 runtime 目录

Webman 的 .env 和 runtime/(含日志、缓存、PID 文件)不该随代码一起覆盖。rsync 默认全量同步会清掉 PID,导致 webman stop 找不到进程。

正确配置 shogo82148/actions-rsync@v1 的 options:

  • 排除敏感目录:--exclude=".env" --exclude="runtime/" --exclude="vendor/"
  • 保留远程已有文件:--ignore-existing
  • 启用删除保护:--delete-excluded 不要加,否则会删掉远程的 runtime/
  • 务必确认 dest 是项目根目录(如 /var/www/webman),不是子目录

本地开发与 CI 环境的 Composer 行为差异

Webman 的 composer install 在 CI 中容易出问题,原因有两个:

  • webman-plugin 类插件依赖可能触发交互式提示(如是否生成配置),CI 环境无 TTY,卡住;解决:加 --no-interaction
  • 某些插件需读取 .env 才能完成安装(如数据库迁移类),但 CI 里不应传 .env;解决:用 --no-scripts 跳过 post-install-cmd
  • 最终命令应为:composer install --no-dev --no-interaction --no-scripts --prefer-dist
  • 如果项目有自定义启动脚本(如 start.php),记得在 rsync 后手动 chmod +x

Webman 的自动化部署难点不在“怎么传代码”,而在“怎么让新代码真正接管请求”。进程控制、环境隔离、配置留存这三处稍有疏忽,就会出现“看起来部署成功,实际没生效”的情况。尤其注意 webman stop -f 是否真杀掉了所有子进程,这是最常被跳过的验证点。

热门AI工具

更多
DeepSeek

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

PixTV
PixTV Hot

PixTV是一款面向AIGC内容创作的AI视频生成工具。

SkildArt
SkildArt Hot

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

Seko
Seko Hot

一款AI视频创作工具,主要用于商汤科技推出的创编一体的AI短视频创作Agent,适合需要提升相关任务效率的用户。

二狗PPT
二狗PPT Hot

一款AI演示文稿工具,主要用于专为中式职场打造的AI PPT生成工具,适合需要提升相关任务效率的用户。

蛙蛙写作

一款AI论文写作工具,主要用于超级AI智能写作助手,适合需要提升相关任务效率的用户。

WorkBuddy

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

豆包大模型

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

讯飞智作

讯飞智作是一款AI视频创作工具,AI文本配音工具,数字人课程、营销视频制作。

相关专题

更多
github中文官网入口 github中文版官网网页进入
github中文官网入口 github中文版官网网页进入

github中文官网入口https://docs.github.com/zh/get-started,GitHub 是一种基于云的平台,可在其中存储、共享并与他人一起编写代码。 通过将代码存储在GitHub 上的“存储库”中,你可以: “展示或共享”你的工作。 持续“跟踪和管理”对代码的更改。

8465

2026.01.21

GitHub官网入口版本汇总
GitHub官网入口版本汇总

本专题整合了GitHub入口版本地址汇总,阅读专题下面的文章了解更多详细内容。

858

2026.04.02

Java 单元测试
Java 单元测试

本专题聚焦 Java 在软件测试与持续集成流程中的实战应用,系统讲解 JUnit 单元测试框架、Mock 数据、集成测试、代码覆盖率分析、Maven 测试配置、CI/CD 流水线搭建(Jenkins、GitHub Actions)等关键内容。通过实战案例(如企业级项目自动化测试、持续交付流程搭建),帮助学习者掌握 Java 项目质量保障与自动化交付的完整体系。

1066

2025.10.24

Webman入门教程合集
Webman入门教程合集

本专题聚焦Webman高性能PHP框架,为您提供零基础入门的一站式全攻略。内容涵盖开发环境搭建全流程、核心原理解析(如目录结构、生命周期)及API接口实战开发。无论您是初次接触还是进阶巩固,都能在此找到实用的教程合集,助您快速掌握这款“常驻内存”的PHP利器,实现高性能后端应用的高效构建。

237

2026.05.21

Webman框架集成与数据库配置
Webman框架集成与数据库配置

本专题聚焦 Webman 高性能 PHP 框架,为您提供一站式后端开发全攻略。内容深度涵盖框架快速入门、多数据库进阶配置(Eloquent & ThinkORM)、以及企业级核心组件集成(如 JWT 鉴权、RabbitMQ 消息队列、Elasticsearch 全文搜索)。

187

2026.05.21

Webman常见问题与错误排查
Webman常见问题与错误排查

本专区深度聚焦 Webman 高性能框架常见故障与性能调优,为您提供一站式全能排查攻略。内容精准覆盖 404/500 核心报错修复、内存溢出(Memory Limit)深度排查、以及 Redis 连接与 Session 失效等开发者高频痛点。

329

2026.05.21

Webman框架功能开发全指南
Webman框架功能开发全指南

本专题深度聚焦 Webman 高性能 PHP 框架全功能模块开发,为您提供一站式实战全攻略。内容深度涵盖从基础的 RESTful API 规范化设计到高阶的即时通讯(WebSocket)、多语言国际化(i18n)及定时任务系统等等。

364

2026.05.21

Webman部署与运维指南
Webman部署与运维指南

本专区聚焦 Webman 高性能框架生产级部署与运维实战,为您提供一站式全攻略。内容深度涵盖 Linux/Windows 多端环境搭建、核心架构方案(如 Docker 容器化扩容、负载均衡下的 Session 共享、集群一致性部署)及自动化运维体系。

338

2026.05.21

PixTV官网入口地址合集
PixTV官网入口地址合集

本专题汇总了 PixTV AI 一站式视频创作平台的官方入口与使用教程。无需下载软件,浏览器直接访问即可使用。平台将剧本、图像、视频、声音与剪辑整合在“无限画布”中,接入 GPT Image 2.5、Seedance 2.5 等头部模型。本专题整理了从新建画布、角色锚定、分镜拆分到视频生成与导出的完整操作指南,助你快速上手 AI 短剧与漫剧创作。

80

2026.10.10

热门下载

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

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Webman和FastAPI的性能对比
Webman和FastAPI的性能对比

共0课时 | 314人学习

Webman中文手册
Webman中文手册

共0课时 | 0人学习

webman初步使用及后台搭建
webman初步使用及后台搭建

共15课时 | 2.7万人学习

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

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