Skip to content

快速开始

本指南帮助您在 5 分钟内 完成后端服务 youlai-think(PHP/ThinkPHP 8)的启动和验证。

前置条件

环境版本要求下载地址
PHP8.0+PHP官网
Composer2.xComposer官网
MySQL5.7+ / 8.x安装教程
Redis7.x安装教程

本地未配置 MySQL、Redis 不影响启动,项目默认连接线上公共环境运行,方便快速体验。

项目结构

text
youlai-think/
├─ app/                       # 应用目录
│  ├─ auth/                   # 认证模块(登录/登出/刷新Token)
│  │   ├─ controller/         # 认证控制器
│  │   └─ service/            # 认证服务
│  ├─ system/                 # 系统模块(用户/角色/菜单/部门/字典/通知/日志)
│  │   ├─ controller/         # 控制器
│  │   ├─ service/            # 业务服务
│  │   ├─ model/              # 数据模型
│  │   ├─ annotation/         # 注解定义
│  │   ├─ enums/              # 枚举定义
│  │   └─ validate/           # 验证器
│  ├─ codegen/                # 代码生成模块
│  ├─ file/                   # 文件上传模块
│  ├─ common/                 # 公共模块
│  │   ├─ constants/          # 常量定义
│  │   ├─ enums/              # 枚举定义
│  │   ├─ exception/          # 异常类
│  │   ├─ middleware/         # 中间件(Auth/Perm/DataScope/RateLimit/Log)
│  │   ├─ model/              # 基础模型
│  │   ├─ traits/             # Trait 复用
│  │   ├─ util/               # 工具类
│  │   ├─ validate/           # 验证器
│  │   └─ web/                # Web 响应/基类
│  ├─ controller/             # 控制器基类
│  ├─ ExceptionHandle.php     # 全局异常处理
│  ├─ middleware.php          # 全局中间件
│  └─ provider.php            # 服务提供者
├─ extend/                    # 扩展类库
│  ├─ jwt/                    # JWT Token 管理
│  ├─ sse/                    # SSE 实时通信
│  ├─ redis/                  # Redis 客户端
│  └─ http/                   # HTTP 工具
├─ config/                    # 配置文件
├─ public/                    # Web 入口
├─ route/                     # 路由定义
├─ sql/                       # 数据库脚本
│  └─ mysql/
│     └─ youlai_admin.sql     # 初始化脚本
├─ bin/                       # 脚本工具
├─ .env                       # 环境变量
└─ composer.json              # 依赖管理

安装步骤

克隆项目

bash
git clone https://gitee.com/youlaiorg/youlai-think.git
cd youlai-think

安装依赖

bash
composer install

数据库初始化

使用数据库客户端执行 sql/mysql/youlai_admin.sql 脚本,完成数据库和基础数据初始化。

配置修改

复制 .env.example.env,根据本地环境修改连接信息:

数据库配置

env
DB_HOST=localhost
DB_PORT=3306
DB_NAME=youlai_admin
DB_USER=root
DB_PASS=your_password

Redis 配置

env
REDIS_HOST=localhost
REDIS_PORT=6379
REDIS_PASSWORD=

启动服务

bash
php think run

访问 http://localhost:8000,返回 ok 表示启动成功。

快速验证

使用 curl 测试登录接口:

bash
curl -X POST http://localhost:8000/api/v1/auth/login \
  -H "Content-Type: application/json" \
  -d '{"username":"admin","password":"123456","captchaId":"test","captchaCode":"1234"}'

成功响应:

json
{
  "code": "00000",
  "msg": "成功",
  "data": {
    "accessToken": "eyJhbGc...",
    "refreshToken": "eyJhbGc...",
    "tokenType": "Bearer",
    "expiresIn": 7200
  }
}

前端联调

克隆前端项目

bash
git clone https://gitee.com/youlaiorg/vue3-element-admin.git
cd vue3-element-admin

配置后端地址

修改 .env.development

env
VITE_APP_API_URL=http://localhost:8000

启动前端

bash
pnpm install
pnpm run dev

访问 http://localhost:3000,使用以下账号登录:

  • 用户名:admin
  • 密码:123456

生产部署

Nginx + PHP-FPM

  • 站点根目录 指向 public/
  • 伪静态/重写 按 ThinkPHP 规则配置,将所有请求转发到 public/index.php
nginx
server {
    listen 80;
    server_name your-domain.com;
    root /path/to/youlai-think/public;
    index index.php index.html;

    # API 代理
    location / {
        if (!-e $request_filename) {
            rewrite ^(.*)$ /index.php?s=$1 last;
        }
    }

    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;
    }
}

Docker 部署

bash
# 构建镜像
docker build -t youlai-think:latest .

# 运行容器
docker run -d -p 8000:8000 --name youlai-think youlai-think:latest

常见问题

端口冲突php think run -p 8001 指定其他端口

数据库连接失败:确认 MySQL 已启动、配置正确、数据库 youlai_admin 已创建

Redis 连接失败redis-cli ping 确认 Redis 已启动

下一步

基于 MIT 许可发布 · 由 ❤️ 和 ☕ 驱动 · 支持作者