From f1f864033d781cc1a710970ab988de560007259b Mon Sep 17 00:00:00 2001 From: admin <3364509428@qq.com> Date: Sat, 18 Oct 2025 14:05:07 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20README.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 838 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 833 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index d3d4d9e..629b236 100644 --- a/README.md +++ b/README.md @@ -2,8 +2,836 @@ 为Fuxsto-v4虚拟主机系统版本归档,发布时间:2025-3-7 -使用方法: - - 1.git clone https://git.hztecha.com/admin/Fuxsto-V4.git - - 2.然后放入网站目录 - - 3.启动nginx或apache(请注意设置伪静态,文件中用apache的伪静态,可转成nginx:https://www.toolnb.com/tools/rewriteTools.html) - - 其他的自己摸索,我只是发布,希望有人能写好MD文档发我,感激不尽) +# Fuxsto Host V4 详细使用文档 + +## 📋 目录 +- [项目简介](#项目简介) +- [系统要求](#系统要求) +- [安装部署](#安装部署) +- [数据库配置](#数据库配置) +- [功能模块详解](#功能模块详解) +- [API接口文档](#api接口文档) +- [管理后台使用](#管理后台使用) +- [产品模块开发](#产品模块开发) +- [系统维护](#系统维护) +- [常见问题](#常见问题) +- [更新日志](#更新日志) + +## 🚀 项目简介 + +Fuxsto Host V4 是一个基于 PHP + MySQL 的虚拟主机管理系统,提供用户注册、产品购买、业务管理等功能。系统采用前后端分离架构,前端使用 Vue.js,后端使用 PHP。 + +### 主要特性 +- 🔐 用户认证系统(集成第三方登录) +- 💰 积分和余额双货币系统 +- 📦 产品管理和购买系统 +- ⏰ 自动到期提醒和清理 +- 📊 用户仪表板 +- 🔧 模块化产品架构 +- 📧 邮件通知系统 + +## 💻 系统要求 + +### 服务器环境 +- **Web服务器**: Apache 2.4+ 或 Nginx 1.18+ +- **PHP版本**: PHP 7.4+ (推荐 PHP 8.0+) +- **数据库**: MySQL 5.7+ 或 MariaDB 10.3+ +- **内存**: 最小 512MB,推荐 1GB+ +- **存储**: 最小 1GB 可用空间 + +### PHP扩展要求 +```bash +# 必需扩展 +php-mysqli +php-json +php-session +php-curl +php-mbstring + +# 可选扩展(推荐) +php-gd +php-zip +php-xml +``` + +## 🛠️ 安装部署 + +### 1. 下载项目 +```bash +# 方式一:Git克隆 +git clone https://git.hztecha.com/admin/Fuxsto-V4.git +cd Fuxsto-V4 + +# 方式二:直接下载解压 +# 下载后解压到网站根目录 +``` + +### 2. 文件权限设置 +```bash +# Linux/Unix 系统 +chmod -R 755 /path/to/fuxsto-v4/ +chmod -R 777 /path/to/fuxsto-v4/Log/ + +# Windows 系统 +# 确保 IIS_IUSRS 或 IUSR 用户有读写权限 +``` + +### 3. Web服务器配置 + +#### Apache 配置 +```apache +# .htaccess 文件(项目根目录) +RewriteEngine On + +# 处理前端路由 +RewriteCond %{REQUEST_FILENAME} !-f +RewriteCond %{REQUEST_FILENAME} !-d +RewriteCond %{REQUEST_URI} ^/Dashboard +RewriteRule ^Dashboard/(.*)$ /Dashboard/index.html [L] + +# API路由重写 +RewriteCond %{REQUEST_FILENAME} !-f +RewriteCond %{REQUEST_FILENAME} !-d +RewriteRule ^Main/(.+)$ /Main/$1/index.php [L] + +# 静态文件缓存 + + ExpiresActive On + ExpiresDefault "access plus 1 month" + +``` + +#### Nginx 配置 +```nginx +server { + listen 80; + server_name your-domain.com; + root /path/to/fuxsto-v4; + index index.html index.php; + + # 前端路由处理 + location /Dashboard { + try_files $uri $uri/ /Dashboard/index.html; + } + + # API路由处理 + location ~ ^/Main/(.+)$ { + try_files $uri /Main/$1/index.php; + } + + # PHP处理 + location ~ \.php$ { + fastcgi_pass 127.0.0.1:9000; + fastcgi_index index.php; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + include fastcgi_params; + } + + # 静态文件缓存 + location ~* \.(css|js|png|jpg|jpeg|gif|ico|svg)$ { + expires 1M; + add_header Cache-Control "public, immutable"; + } +} +``` + +## 🗄️ 数据库配置 + +### 1. 创建数据库 +```sql +CREATE DATABASE fuxstohostv4 CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; +``` + +### 2. 创建数据表 + +#### 用户表 (users) +```sql +CREATE TABLE `users` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `username` varchar(50) NOT NULL UNIQUE, + `password` varchar(255) NOT NULL, + `qq` varchar(20) DEFAULT NULL, + `score` int(11) DEFAULT 100, + `balance` decimal(10,2) DEFAULT 0.00, + `status` enum('active','inactive','banned') DEFAULT 'active', + `last_sign_in_date` date DEFAULT NULL, + `register_time` timestamp DEFAULT CURRENT_TIMESTAMP, + `register_ip` varchar(45) DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `idx_username` (`username`), + KEY `idx_status` (`status`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +``` + +#### 产品表 (products) +```sql +CREATE TABLE `products` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `product_id` varchar(50) NOT NULL UNIQUE, + `name` varchar(100) NOT NULL, + `description` text, + `price` decimal(10,2) NOT NULL, + `currency_type` enum('score','balance') DEFAULT 'score', + `stock` int(11) DEFAULT 0, + `limit_per_user` int(11) DEFAULT 1, + `subscription_period` int(11) DEFAULT 30, + `module` varchar(50) NOT NULL, + `category_1` varchar(50) DEFAULT NULL, + `category_2` varchar(50) DEFAULT NULL, + `sort_order` int(11) DEFAULT 0, + `status` enum('visible','hidden') DEFAULT 'visible', + `created_at` timestamp DEFAULT CURRENT_TIMESTAMP, + `updated_at` timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (`id`), + KEY `idx_product_id` (`product_id`), + KEY `idx_status` (`status`), + KEY `idx_category` (`category_1`, `category_2`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +``` + +#### 购买记录表 (purchases) +```sql +CREATE TABLE `purchases` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `user_id` int(11) NOT NULL, + `product_id` varchar(50) NOT NULL, + `purchase_id` varchar(50) NOT NULL UNIQUE, + `name` varchar(100) NOT NULL, + `purchase_time` timestamp DEFAULT CURRENT_TIMESTAMP, + `expiry_time` datetime NOT NULL, + `status` enum('pending_activation','activated','expiring','expired') DEFAULT 'pending_activation', + `subscription_period` int(11) NOT NULL, + `extra_data` text, + PRIMARY KEY (`id`), + KEY `idx_user_id` (`user_id`), + KEY `idx_purchase_id` (`purchase_id`), + KEY `idx_status` (`status`), + KEY `idx_expiry` (`expiry_time`), + FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +``` + +### 3. 修改数据库连接配置 + +编辑 文件: + +```php +function 数据库运行($sql) { + // 数据库连接参数 - 请修改为您的数据库信息 + $servername = "localhost"; // 数据库服务器地址 + $username = "your_db_username"; // 数据库用户名 + $password = "your_db_password"; // 数据库密码 + $dbname = "fuxstohostv4"; // 数据库名称 + + // 其余代码保持不变... +} +``` + +## 🔧 功能模块详解 + +### 1. 用户认证系统 + +#### 登录流程 +1. 用户访问首页,点击登录按钮 +2. 系统重定向到第三方认证服务 (auth.fuxsto.cn) +3. 用户完成认证后回调到 +4. 系统自动注册新用户或登录现有用户 +5. 设置 Session 并跳转到 Dashboard + +#### 认证配置 +在 中配置: +```php +$AppName = "Fuxsto Host V5"; // 应用名称 +$AppLogo = "https://hv4.fuxsto.cn/favicon.ico"; // 应用图标 +$AppInfo = "未注册的账号会自动注册!"; // 应用说明 +$AppUrl = "https://hv4.fuxsto.cn"; // 应用地址 +$AppCallBackUrl = "https://hv4.fuxsto.cn/Main/Login/CallBack.php"; // 回调地址 +$AppField = array("qq","id","username","password","register_time","register_ip"); // 需要的字段 +``` + +### 2. 积分和余额系统 + +#### 货币类型 +- **积分 (score)**: 通过签到获得,用于购买免费产品 +- **余额 (balance)**: 充值获得,用于购买付费产品 + +#### 签到系统 +- 每日签到获得 80-200 随机积分 +- 防止重复签到机制 +- 签到状态检查: + +### 3. 产品管理系统 + +#### 产品结构 +```php +// 产品基本信息 +$产品元数据 = [ + 'product_id' => 'unique_product_id', + 'name' => '产品名称', + 'price' => 100, + 'currency_type' => 'score', // 或 'balance' + 'stock' => 10, + 'limit_per_user' => 1, + 'subscription_period' => 30, // 天数 + 'module' => 'HK-FREE-EP', // 产品模块 + 'category_1' => '虚拟主机', + 'category_2' => '免费版' +]; +``` + +#### 购买流程 +1. 用户选择产品 +2. 系统检查库存和限购 +3. 验证用户余额/积分 +4. 扣除费用 +5. 调用产品模块开通服务 +6. 记录购买信息 +7. 更新库存 + +### 4. 产品模块系统 + +#### 模块结构 +``` +ProductsModule/ +└── HK-FREE-EP/ # 产品模块目录 + ├── Main.php # 主要功能文件 + └── s.html # 产品展示页面 +``` + +#### 模块必需函数 +```php +// Main.php 中必须实现的函数 + +// 开通产品 +function 开通产品($产品元数据, $产品唯一标识符) { + // 实现产品开通逻辑 + return [ + 'code' => 200, + 'msg' => '开通成功', + 'data' => [] // 额外数据 + ]; +} + +// 展示产品 +function 展示产品($业务元数据, $产品元数据) { + // 返回产品展示页面HTML + return file_get_contents('s.html'); +} + +// 删除业务 +function 删除业务($业务元数据, $产品元数据) { + // 实现业务删除逻辑 + return ['code' => 200, 'msg' => '删除成功']; +} + +// 生成唯一字符串 +function 唯一字符串() { + return 唯一随机字符串(10); +} +``` + +## 📡 API接口文档 + +### 基础响应格式 +```json +{ + "code": 200, + "msg": "操作成功或数据内容" +} +``` + +### 用户相关接口 + +#### 1. 用户信息获取 +- **接口**: `GET /Main/GetInfo/` +- **说明**: 获取当前登录用户信息 +- **响应**: +```json +{ + "code": 200, + "msg": { + "id": 1, + "username": "testuser", + "qq": "123456789", + "score": 150, + "balance": "10.50", + "can_check": true + } +} +``` + +#### 2. 每日签到 +- **接口**: `POST /Main/CheckIn/` +- **说明**: 用户每日签到获取积分 +- **响应**: +```json +{ + "code": 200, + "msg": "获得积分 120" +} +``` + +### 产品相关接口 + +#### 1. 获取商品列表 +- **接口**: `GET /Main/GetGoods/` +- **说明**: 获取所有可见商品,按分类组织 +- **响应**: +```json +{ + "虚拟主机": { + "免费版": [ + { + "product_id": "hk-free-001", + "name": "香港免费主机", + "price": "100", + "currency_type": "积分", + "stock": 10, + "description": "免费虚拟主机" + } + ] + } +} +``` + +#### 2. 购买商品 +- **接口**: `POST /Main/BuyGoods/` +- **参数**: + - `product_id`: 产品ID +- **响应**: +```json +{ + "code": 200, + "msg": "开通成功" +} +``` + +#### 3. 获取用户产品 +- **接口**: `GET /Main/GetProducts/` +- **说明**: 获取用户已购买的产品列表 +- **响应**: +```json +{ + "code": 200, + "msg": [ + { + "purchase_id": "abc123", + "name": "香港免费主机", + "purchase_time": "2025-01-01 10:00:00", + "expiry_time": "2025-01-31 10:00:00", + "status": "activated" + } + ] +} +``` + +#### 4. 查看产品详情 +- **接口**: `GET /Main/ViewProduct/?id=purchase_id` +- **说明**: 查看具体产品的详细信息和管理界面 +- **响应**: 返回产品模块的HTML页面 + +## 🎛️ 管理后台使用 + +### 访问地址 +- 前台首页: `http://your-domain.com/` +- 用户仪表板: `http://your-domain.com/Dashboard/` + +### Dashboard 功能 + +#### 1. 用户中心 +- 显示用户基本信息 +- 积分和余额显示 +- 每日签到功能 + +#### 2. 产品管理 +- 查看已购买产品 +- 产品状态监控 +- 到期时间提醒 + +#### 3. 商品购买 +- 浏览可用商品 +- 按分类筛选 +- 一键购买功能 + +### 前端技术栈 +- **Vue.js 3**: 主框架 +- **Element Plus**: UI组件库 +- **Axios**: HTTP请求库 +- **Varlet UI**: 移动端组件库 + +## 🔨 产品模块开发 + +### 创建新产品模块 + +#### 1. 创建模块目录 +```bash +mkdir ProductsModule/YOUR-MODULE-NAME +cd ProductsModule/YOUR-MODULE-NAME +``` + +#### 2. 创建 Main.php +```php + $产品唯一标识符, + 'domain' => $产品元数据['name'], + 'plan' => 'free' + ]); + + if ($result['success']) { + return [ + 'code' => 200, + 'msg' => '开通成功', + 'data' => [ + 'username' => $result['username'], + 'password' => $result['password'], + 'control_panel' => $result['cpanel_url'] + ] + ]; + } else { + return [ + 'code' => 500, + 'msg' => '开通失败:' . $result['error'] + ]; + } + } catch (Exception $e) { + return [ + 'code' => 500, + 'msg' => '系统错误:' . $e->getMessage() + ]; + } +} + +// 展示产品函数 +function 展示产品($业务元数据, $产品元数据) { + // 读取展示页面模板 + $html = file_get_contents(__DIR__ . '/s.html'); + + // 替换模板变量 + $html = str_replace('<业务元数据>', json_encode($业务元数据), $html); + $html = str_replace('<产品元数据>', json_encode($产品元数据), $html); + + return $html; +} + +// 删除业务函数 +function 删除业务($业务元数据, $产品元数据) { + try { + // 实现删除逻辑 + $extra_data = json_decode($业务元数据['extra_data'], true); + + // 示例:删除虚拟主机账户 + $result = deleteHostingAccount($extra_data['username']); + + return [ + 'code' => 200, + 'msg' => '删除成功' + ]; + } catch (Exception $e) { + return [ + 'code' => 500, + 'msg' => '删除失败:' . $e->getMessage() + ]; + } +} + +// 生成唯一字符串 +function 唯一字符串() { + return 唯一随机字符串(10); +} +?> +``` + +#### 3. 创建展示页面 s.html +```html + + + + + + 产品管理 + + + +
+
+

{{ productName }}

+

购买时间: {{ purchaseTime }}

+

到期时间: {{ expiryTime }}

+

状态: {{ status }}

+ +
+

账户信息

+

用户名: {{ productData.username }}

+

密码: {{ productData.password }}

+ 控制面板 +
+
+
+ + + + +``` + +### 添加产品到数据库 +```sql +INSERT INTO `products` ( + `product_id`, `name`, `description`, `price`, `currency_type`, + `stock`, `limit_per_user`, `subscription_period`, `module`, + `category_1`, `category_2`, `sort_order`, `status` +) VALUES ( + 'your-product-001', + '您的产品名称', + '产品描述', + 100, + 'score', + 50, + 1, + 30, + 'YOUR-MODULE-NAME', + '主分类', + '子分类', + 100, + 'visible' +); +``` + +## 🔧 系统维护 + +### 1. 自动化任务 + +#### 到期提醒任务 +- **文件**: +- **功能**: 检查即将到期的产品,发送邮件提醒 +- **运行**: 建议每天运行一次 + +```bash +# 添加到 crontab +0 9 * * * /usr/bin/php /path/to/fuxsto-v4/Main/System/ExpiryReminder.php +``` + +#### 过期产品清理 +- **文件**: +- **功能**: 清理已过期的产品,释放资源 +- **运行**: 建议每天运行一次 + +```bash +# 添加到 crontab +0 2 * * * /usr/bin/php /path/to/fuxsto-v4/Main/System/ExpiredProductsCleaner.php +``` + +### 2. 日志管理 + +#### 日志位置 +- 到期提醒日志: `Log/ExpiryReminder/ExpiryReminder_YYYY-MM-DD.log` +- 系统日志: `Main/System/Log/` + +#### 日志清理 +```bash +# 清理30天前的日志 +find /path/to/fuxsto-v4/Log -name "*.log" -mtime +30 -delete +``` + +### 3. 数据库维护 + +#### 定期优化 +```sql +-- 优化表 +OPTIMIZE TABLE users, products, purchases; + +-- 清理过期数据 +DELETE FROM purchases WHERE status = 'expired' AND expiry_time < NOW() - INTERVAL 30 DAY; +``` + +#### 备份脚本 +```bash +#!/bin/bash +# 数据库备份脚本 +DATE=$(date +%Y%m%d_%H%M%S) +mysqldump -u username -p password fuxstohostv4 > backup_$DATE.sql +``` + +### 4. 性能监控 + +#### 关键指标 +- 数据库连接数 +- 响应时间 +- 错误率 +- 磁盘使用率 + +#### 监控脚本示例 +```php + false, + 'disk_space' => false, + 'response_time' => 0 +]; + +// 检查数据库连接 +$start_time = microtime(true); +$result = 数据库运行("SELECT 1"); +$health['response_time'] = microtime(true) - $start_time; +$health['database'] = ($result !== false); + +// 检查磁盘空间 +$free_space = disk_free_space('.'); +$total_space = disk_total_space('.'); +$usage_percent = (1 - $free_space / $total_space) * 100; +$health['disk_space'] = ($usage_percent < 90); + +header('Content-Type: application/json'); +echo json_encode($health); +?> +``` + +## ❓ 常见问题 + +### 1. 安装问题 + +**Q: 数据库连接失败** +A: 检查以下几点: +- 数据库服务是否启动 +- 连接参数是否正确 +- 用户权限是否足够 +- 防火墙是否阻止连接 + +**Q: 伪静态不生效** +A: +- Apache: 确保 mod_rewrite 模块已启用 +- Nginx: 检查配置文件中的 rewrite 规则 +- 确保 .htaccess 文件存在且可读 + +### 2. 功能问题 + +**Q: 登录后跳转到空白页** +A: 检查以下几点: +- Session 是否正常启动 +- Dashboard 目录权限 +- JavaScript 控制台是否有错误 + +**Q: 产品购买失败** +A: +- 检查库存是否充足 +- 验证用户余额/积分 +- 查看产品模块是否正确加载 +- 检查数据库表结构 + +**Q: 邮件发送失败** +A: +- 检查邮件服务器配置 +- 验证 SMTP 设置 +- 查看邮件发送日志 + +### 3. 性能问题 + +**Q: 页面加载缓慢** +A: +- 启用 PHP OPcache +- 配置静态文件缓存 +- 优化数据库查询 +- 使用 CDN 加速 + +**Q: 数据库查询慢** +A: +- 添加适当的索引 +- 优化 SQL 查询 +- 定期清理过期数据 +- 考虑读写分离 + +### 4. 安全问题 + +**Q: 如何防止 SQL 注入** +A: +- 使用参数化查询 +- 验证和过滤用户输入 +- 定期更新 PHP 版本 +- 启用错误日志监控 + +**Q: 如何保护敏感信息** +A: +- 数据库密码使用环境变量 +- 启用 HTTPS +- 定期更换密钥 +- 限制文件访问权限 + +## 📝 更新日志 + +### V4.0.0 (2025-03-07) +- 🎉 初始版本发布 +- ✨ 用户认证系统 +- ✨ 产品管理系统 +- ✨ 积分余额系统 +- ✨ 自动化任务系统 +- ✨ 模块化架构 + +### 计划功能 +- 📊 管理员后台 +- 💳 在线支付集成 +- 📱 移动端优化 +- 🔔 实时通知系统 +- 📈 数据统计分析 + +## 🤝 技术支持 + +### 联系方式 +- 项目地址: https://git.hztecha.com/admin/Fuxsto-V4.git +- 问题反馈: 请在项目仓库提交 Issue +- 技术交流: 加入官方QQ群 + +### 贡献指南 +1. Fork 项目 +2. 创建功能分支 +3. 提交更改 +4. 推送到分支 +5. 创建 Pull Request + +### 开源协议 +本项目采用 MIT 协议,详见 LICENSE 文件。 + +--- + +**注意**: 本文档会持续更新,请关注最新版本。如有疑问或建议,欢迎提交 Issue 或 Pull Request。 \ No newline at end of file