Skip to content

zzppcczpc/TitanStore

Repository files navigation

部署说明

环境要求

  • Ubuntu/WSL (Linux环境)
  • MySQL 5.7+
  • Redis
  • CMake 3.10+
  • GCC/G++ 支持C++11

一、安装依赖

在WSL或Ubuntu虚拟机中执行:

sudo apt update
sudo apt install mysql-server libmysqlclient-dev redis-server libhiredis-dev cmake g++ build-essential

二、启动服务

# 启动MySQL
sudo service mysql start

# 启动Redis
sudo service redis-server start

三、配置数据库

1. 登录MySQL

sudo mysql -u root

2. 创建数据库和表

在MySQL命令行中执行:

-- 创建数据库
CREATE DATABASE IF NOT EXISTS webserver;
USE webserver;

-- 创建用户表(包含管理员和配额字段)
CREATE TABLE IF NOT EXISTS user(
    username char(50) NULL,
    password char(50) NULL,
    is_admin TINYINT DEFAULT 0 COMMENT '是否为管理员:0=普通用户,1=管理员',
    quota BIGINT UNSIGNED DEFAULT 5368709120 COMMENT '用户存储配额(字节),默认5GB'
) ENGINE=InnoDB;

-- 插入默认管理员账号
INSERT INTO user(username, password, is_admin, quota) VALUES('admin', 'password', 1, 5368709120);

-- 创建webuser用户(无密码)
CREATE USER IF NOT EXISTS 'webuser'@'localhost' IDENTIFIED BY '';
GRANT ALL PRIVILEGES ON webserver.* TO 'webuser'@'localhost';
FLUSH PRIVILEGES;

-- 退出MySQL
exit;

四、创建必要目录

# 在项目根目录下执行
mkdir -p log
mkdir -p data

五、编译项目

./build.sh

如果编译失败,可以尝试清理后重新编译:

./build.sh clean
./build.sh

六、启动服务器

./bin/server -p 1316 -l -D 0

参数说明:

  • -p 1316: 指定端口号为1316
  • -l: 启用日志
  • -D 0: 日志级别为0(DEBUG)

七、访问系统

普通用户访问

http://localhost:1316

管理员登录

  1. 访问 http://localhost:1316/user
  2. 使用管理员账号登录:
    • 用户名:admin
    • 密码:password
  3. 登录后自动跳转到管理员后台 http://localhost:1316/admin

八、默认账号

管理员账号

  • 用户名:admin
  • 密码:password
  • 权限:管理员(is_admin=1)
  • 配额:5GB

修改管理员密码

mysql -u webuser webserver -e "UPDATE user SET password='新密码' WHERE username='admin';"

九、功能说明

普通用户功能

  • 文件上传/下载
  • 文件夹管理(创建、删除、进入)
  • 文件/文件夹重命名
  • 存储空间配额查看
  • 文件分享(支持1小时-1年有效期)
  • 回收站(删除→回收站→恢复/彻底删除)

管理员功能

  • 查看所有用户列表
  • 添加新用户(设置用户名、密码、配额)
  • 删除用户(同时删除用户所有文件)
  • 修改用户配额(1GB-1000GB)

十、常见问题

1. 编译错误

如果遇到编译错误,检查:

  • 是否安装了所有依赖
  • CMake版本是否>=3.10
  • GCC版本是否支持C++11

2. MySQL连接失败

检查:

  • MySQL服务是否启动:sudo service mysql status
  • webuser用户是否创建成功
  • 数据库webserver是否存在

3. Redis连接失败

检查:

  • Redis服务是否启动:sudo service redis-server status
  • Redis是否设置了密码(本项目Redis无密码)

4. 端口被占用

如果1316端口被占用,可以修改端口:

./bin/server -p 其他端口号 -l -D 0

5. 日志查看

日志文件位置:log/YYYY_MM_DD.log

tail -f log/2026_03_28.log

十一、升级已有项目

如果你已经部署了旧版本(没有管理员功能),需要升级数据库:

# 执行数据库升级脚本
mysql -u webuser webserver < database_upgrade.sql

或者手动执行:

mysql -u webuser webserver
-- 添加is_admin字段
ALTER TABLE user ADD COLUMN is_admin TINYINT DEFAULT 0 COMMENT '是否为管理员:0=普通用户,1=管理员';

-- 添加quota字段
ALTER TABLE user ADD COLUMN quota BIGINT UNSIGNED DEFAULT 5368709120 COMMENT '用户存储配额(字节),默认5GB';

-- 将admin设置为管理员
UPDATE user SET is_admin = 1 WHERE username = 'admin';

-- 为所有用户设置默认配额
UPDATE user SET quota = 5368709120 WHERE quota IS NULL OR quota = 0;

exit;

然后重新编译运行:

./build.sh
./bin/server -p 1316 -l -D 0

十二、生产环境建议

  1. 修改默认密码

    mysql -u webuser webserver -e "UPDATE user SET password='强密码' WHERE username='admin';"
  2. 设置MySQL密码 为webuser设置密码,并修改代码中的连接配置

  3. 设置Redis密码 修改Redis配置文件,设置密码

  4. 使用systemd管理服务 创建systemd服务文件,实现开机自启动

  5. 配置防火墙 只开放必要的端口

  6. 定期备份

    • 备份MySQL数据库
    • 备份data目录(用户文件)

十三、卸载

# 停止服务器(Ctrl+C)

# 删除数据库
sudo mysql -u root -e "DROP DATABASE webserver; DROP USER 'webuser'@'localhost';"

# 删除项目文件
cd ..
rm -rf WebServer-master

技术支持

如有问题,请查看:

  • 日志文件:log/YYYY_MM_DD.log
  • 管理员功能说明:管理员功能说明.txt
  • 数据库升级脚本:database_upgrade.sql

About

TitanStore

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors