webman生产环境部署有五种方案:一、nginx反向代理;二、docker容器化;三、宝塔面板图形化;四、systemd原生守护;五、内核与php协同调优,均需确保php 8.0+、pcntl/posix扩展启用及调试关闭。

如果您已完成Webman应用的开发并准备将其投入实际运行,但尚未配置适合高并发、低延迟要求的生产环境,则可能面临服务不稳定、响应缓慢或无法承受流量高峰等问题。以下是针对Webman框架在生产环境中部署与服务器环境搭建的多种可行方案:
一、基于Nginx反向代理的标准部署
该方式利用Nginx作为前置HTTP服务器,处理静态资源、SSL终止和请求分发,将动态请求转发至Webman常驻服务,兼顾安全性、性能与运维成熟度。
1、确保PHP版本为8.0或更高,并启用posix、pcntl扩展;可通过php -m | grep -E "posix|pcntl"验证。
2、修改config/app.php,将'debug' => false,关闭调试模式以提升安全性和执行效率。
3、在宝塔面板或手动编辑Nginx配置文件,添加如下server块:
4、执行php start.php start -d以后台模式启动Webman服务,监听http://127.0.0.1:8787。
5、重载Nginx配置:nginx -s reload或通过宝塔面板点击“重载配置”。
二、使用Docker容器化的一键部署
该方案通过标准化镜像封装运行时依赖,消除环境差异,适用于CI/CD流水线及多环境一致性交付,且支持快速扩缩容。
1、确认系统已安装Docker 24.0+与Docker Compose v2,执行docker compose version验证。
2、克隆官方项目后,检查根目录是否存在docker-compose.yml,该文件已预置PHP 8.2运行时与端口映射规则。
3、运行php start.php check,确保pcntl、posix等扩展未被禁用,否则需在Dockerfile中显式启用。
4、执行docker compose up -d启动服务,容器默认暴露宿主机8787端口。
5、访问http://服务器IP:8787验证欢迎页面,日志可通过docker compose logs -f实时查看。
三、宝塔面板图形化部署流程
该方式面向不熟悉命令行操作的开发者或小型团队,借助可视化界面完成环境构建、站点绑定与进程守护,大幅降低部署门槛。
1、登录宝塔面板,在“软件商店”中安装PHP 8.2(务必选择“编译安装”,避免极速安装缺失关键扩展)。
2、进入PHP设置页,于“禁用函数”栏中移除pcntl_fork、posix_kill等Workerman必需函数。
Webman 2.2.0版本强化了 TCP/UDP 服务支持,优化路由组管理,并增强异步任务处理能力。结合协程与连接池技术,Webman 能轻松应对高并发场景,适用于网站、接口服务、即时通讯、物联网及游戏开发,兼具高性能、灵活扩展与稳定可靠,是多场景 PHP 服务开发的理想选择。
3、创建新网站,绑定域名或IP,根目录指向Webman项目的public子目录。
4、在“终端”中切换至项目根目录,执行composer install --no-dev仅安装生产依赖。
5、使用宝塔“计划任务”添加Shell脚本,内容为cd /www/wwwroot/your-site && php start.php start -d,设为开机自启。
四、基于Systemd的原生进程守护部署
该方案绕过第三方工具,直接利用Linux系统级服务管理机制,实现Webman进程的自动拉起、崩溃恢复与资源隔离,适合对稳定性有严苛要求的场景。
1、创建systemd服务单元文件/etc/systemd/system/webman.service,内容包含[Service]段指定User=www-data与WorkingDirectory路径。
2、在ExecStart中写入完整启动命令:/usr/bin/php /var/www/webman/start.php start -d。
3、设置Restart=always与RestartSec=3,确保异常退出后3秒内自动重启。
4、执行systemctl daemon-reload重新加载配置,再运行systemctl enable webman设为开机启动。
5、启动服务:systemctl start webman,随后用systemctl status webman确认运行状态。
五、高性能内核参数与PHP扩展协同调优
该步骤非独立部署方式,而是所有前述方案均需执行的底层加固动作,直接影响Webman在万级并发下的连接保持能力与IO吞吐表现。
1、调整Linux系统最大文件描述符数:在/etc/security/limits.conf中追加www-data soft nofile 65535与www-data hard nofile 65535。
2、优化网络参数:在/etc/sysctl.conf中添加net.core.somaxconn = 65535与net.ipv4.tcp_tw_reuse = 1。
3、在PHP配置中启用event扩展(如已安装),并在config/server.php中将'transport' => 'event'以启用epoll/kqueue。
4、修改config/server.php中的max_package_size为20 * 1024 * 1024(20MB),适配大文件上传场景。
5、在start.php中根据CPU核心数动态设置Worker数量:$worker->count = cpu_count() * 2;










