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