在 Linux 下,ThinkPHP 实现代码热更新的主流做法是基于 Swoole 常驻内存运行,并通过文件监控或进程信号触发平滑重启。下面给出可直接落地的配置与操作。
方案一 Think-Swoole 组件实现热更新
composer require topthink-swoole。php think swoole(默认监听 0.0.0.0:80,如端口占用请在 config/swoole.php 调整)。php think swoole start|stop|restart|reload。'hot_update' => [
'enable' => true, // 开启文件监控自动 reload
'name' => ['*.php'], // 监控的文件后缀
'include' => [app_path()], // 监控的目录(默认应用目录)
'exclude' => [], // 排除目录
],
'options' => ['daemonize' => true];但一般建议仅在调试环境启用文件监控,生产环境关闭以降低开销与风险。方案二 Workerman 场景的热更新要点
php worker.php reload(向主进程发送 SIGUSR1)。opcache.enable=0、opcache.enable_cli=0),并重启 PHP 进程,否则文件变更可能不生效。方案三 不重启进程的业务热更新
生产环境建议