基于Workerman v5.0.0 + Webman-framework v1.6.14 + php v8.1.27
的系統(tǒng),在centos
操作系統(tǒng)下采用了Supervisor進程守護
形式運行。初始引導進入安裝頁時,是不會用到數據庫配置:config/database.php
和 config/thinkorm.php
兩個文件,這兩個文件的配置信息是調用了項目目錄下.env
文件中的配置數據。
當執(zhí)行安裝完成后會更新填寫錄入的數據庫連接信息到.env
文件,以及執(zhí)行以下代碼進行熱加載:
/*嘗試reload*/
if (function_exists('posix_kill')) {
set_error_handler(function () {});
posix_kill(posix_getppid(), SIGUSR1);
restore_error_handler();
}/**/
當以上執(zhí)行完后系統(tǒng)會跳到正常的生產頁,這時會報錯:提示是找不到相應的數據庫,也就是熱加載后調用的仍是初始的數據庫連接配置信息,通過手動在服務器中重啟 Supervisor進程守護
后便可正常訪問。
請問下大佬們,這種方式是否可以這樣熱加載 或 其他調整實現,而不通過手動去重啟。謝謝!