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(); ?> <?= htmlspecialchars($title) ?>

自由云商城安装向导

只需几步,填写数据库信息即可完成安装。
1. 环境检测
2. 数据库设置
3. 完成
='), '当前版本 ' . PHP_VERSION], ['PDO 扩展', extension_loaded('pdo'), '用于数据库连接'], ['PDO_MYSQL 扩展', extension_loaded('pdo_mysql'), '用于 MySQL 连接'], ['config.php 可写', is_writable(__DIR__), '需对商城目录有写权限'], ]; $allOk = true; foreach ($checks as $c) { if (!$c[1]) $allOk = false; } ?> 下一步:填写数据库信息 →

请先满足上述环境要求(尤其启用 pdo_mysql 扩展,并确保目录可写)后再继续。

数据库信息

站点与管理员

安装成功!

数据库已创建、数据表与初始商品已写入,管理员账号已生成。

进入商城前台 → 进入后台管理

为安全起见,建议安装完成后删除或重命名 install.php

自由云科技团队 · 公益技术团队

已安装

商城已安装

检测到 config.php 已存在,无需重复安装。

进入商城前台 后台管理 强制重新安装

如需重新安装,请先删除 config.php,或点击「强制重新安装」。

手动保存配置

无法写入 config.php

数据库已初始化成功,但目录不可写。请手动创建 mall/config.php 并粘贴以下内容:

保存后访问 index.php 即可使用。