修复安装数据库报错
This commit is contained in:
@@ -12,6 +12,7 @@ use ba\Filesystem;
|
||||
use app\common\controller\Api;
|
||||
use app\admin\model\Admin as AdminModel;
|
||||
use app\admin\model\User as UserModel;
|
||||
use app\process\Monitor;
|
||||
use support\Response;
|
||||
use Webman\Http\Request;
|
||||
use Phinx\Config\Config as PhinxConfig;
|
||||
@@ -428,6 +429,20 @@ class Install extends Api
|
||||
]);
|
||||
}
|
||||
|
||||
// Windows 下 php windows.php 会每秒检测监控目录;写入 config/.env 等会触发 taskkill 整进程,导致 POST 被中断(ERR_CONNECTION_RESET)
|
||||
Monitor::pause();
|
||||
try {
|
||||
return $this->baseConfigPost($request, $envOk, $rootPath, $migrateCommand);
|
||||
} finally {
|
||||
Monitor::resume();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 系统基础配置 POST:写入配置并执行迁移
|
||||
*/
|
||||
private function baseConfigPost(Request $request, bool $envOk, string $rootPath, string $migrateCommand): Response
|
||||
{
|
||||
$connectData = $databaseParam = $request->only(['hostname', 'username', 'password', 'hostport', 'database', 'prefix']);
|
||||
|
||||
// 数据库配置测试
|
||||
@@ -455,6 +470,9 @@ class Install extends Api
|
||||
return "\$env('database.{$key}', '" . addslashes($value) . "')";
|
||||
};
|
||||
$dbConfigText = preg_replace_callback("/\\\$env\('database\.(hostname|database|username|password|hostport|prefix)',\s*'[^']*'\)/", $callback, $dbConfigContent);
|
||||
if ($dbConfigText === null) {
|
||||
return $this->error(__('Failed to update database config file:%s', ['config/' . self::$dbConfigFileName]));
|
||||
}
|
||||
$result = @file_put_contents($dbConfigFile, $dbConfigText);
|
||||
if (!$result) {
|
||||
return $this->error(__('File has no write permission:%s', ['config/' . self::$dbConfigFileName]));
|
||||
|
||||
Reference in New Issue
Block a user