基于Workerman v5.0.0 + Webman-framework v1.6.14 + php v8.1.27
的系统,在centos
操作系统下采用了Supervisor进程守护
形式运行。初始引导进入安装页时,是不会用到数据库配置:config/database.php
和 config/thinkorm.php
两个文件,这两个文件的配置信息是调用了项目目录下.env
文件中的配置数据。
当执行安装完成后会更新填写录入的数据库连接信息到.env
文件,以及执行以下代码进行热加载:
/*尝试reload*/
if (function_exists('posix_kill')) {
set_error_handler(function () {});
posix_kill(posix_getppid(), SIGUSR1);
restore_error_handler();
}/**/
当以上执行完后系统会跳到正常的生产页,这时会报错:提示是找不到相应的数据库,也就是热加载后调用的仍是初始的数据库连接配置信息,通过手动在服务器中重启 Supervisor进程守护
后便可正常访问。
请问下大佬们,这种方式是否可以这样热加载 或 其他调整实现,而不通过手动去重启。谢谢!
support/bootstrap.php
重新载入env配置是在这里做的,你可以调试下看下是否有问题
好的,谢谢大佬,问题已经解决