# Fuxsto-V4 为Fuxsto-v4虚拟主机系统版本归档,发布时间:2025-3-7 # 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。