PDO::ERRMODE_EXCEPTION, PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, PDO::ATTR_EMULATE_PREPARES => false, ]; $pdo = new PDO("mysql:host={$host};port={$port};charset=utf8mb4", $dbuser, $dbpass, $opts); $pdo->exec("CREATE DATABASE IF NOT EXISTS `{$dbname}` CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci"); $pdo = new PDO("mysql:host={$host};port={$port};dbname={$dbname};charset=utf8mb4", $dbuser, $dbpass, $opts); // 2) 导入表结构与初始数据 $sql = file_get_contents(__DIR__ . '/db.sql'); $sql = preg_replace('/^--.*$/m', '', $sql); // 去掉 -- 注释行 $sql = str_replace('__PREFIX__', $prefix, $sql); $stmts = preg_split('/;\s*\n/', $sql); foreach ($stmts as $s) { $s = trim($s); if ($s === '') continue; $pdo->exec($s); } // 3) 创建管理员账号(同时生成唯一邀请码,避免 uk_invite_code 冲突) $hash = password_hash($adminpass, PASSWORD_DEFAULT); $adminCode = strtoupper(substr(md5(uniqid('admin', true)), 0, 8)); $pdo->prepare("INSERT INTO `{$prefix}users` (username,password,email,invite_code,is_admin,role,created_at) VALUES (?,?,?,?,1,'admin',NOW())") ->execute([$adminuser, $hash, $adminemail, $adminCode]); // 4) 生成 config.php $cfg = "getMessage(); } } // 出错则回到表单(下方会渲染步骤 2 并显示错误) $step = '2'; } // ====================== 视图渲染 ====================== $title = '自由云商城 · 安装向导'; $cssVer = file_exists(__DIR__ . '/assets/style.css') ? filemtime(__DIR__ . '/assets/style.css') : time(); ?>
请先满足上述环境要求(尤其启用 pdo_mysql 扩展,并确保目录可写)后再继续。
自由云科技团队 · 公益技术团队