关于 webman 配置数据变动后热加载问题咨询

yookey

问题描述

基于Workerman v5.0.0 + Webman-framework v1.6.14 + php v8.1.27的系统,在centos操作系统下采用了Supervisor进程守护形式运行。初始引导进入安装页时,是不会用到数据库配置:config/database.phpconfig/thinkorm.php 两个文件,这两个文件的配置信息是调用了项目目录下.env文件中的配置数据。

当执行安装完成后会更新填写录入的数据库连接信息到.env文件,以及执行以下代码进行热加载:

/*尝试reload*/
if (function_exists('posix_kill')) {
    set_error_handler(function () {});
    posix_kill(posix_getppid(), SIGUSR1);
    restore_error_handler();
}/**/

当以上执行完后系统会跳到正常的生产页,这时会报错:提示是找不到相应的数据库,也就是热加载后调用的仍是初始的数据库连接配置信息,通过手动在服务器中重启 Supervisor进程守护 后便可正常访问。

请问下大佬们,这种方式是否可以这样热加载 或 其他调整实现,而不通过手动去重启。谢谢!

129 1 0
1个回答

support/bootstrap.php
截图
重新载入env配置是在这里做的,你可以调试下看下是否有问题

  • yookey 8天前

    好的,谢谢大佬,问题已经解决

×
🔝