签入版本
This commit is contained in:
@@ -267,7 +267,7 @@ crontab -l
|
||||
# /mo 1 → 每 1 分钟执行一次
|
||||
# /f → 强制覆盖同名任务
|
||||
# =============================================================================
|
||||
schtasks /create /tn "RXThinkCMF_Job" /tr "cmd /c cd /d D:\laragon\www\RXThinkCMF_Laravel13_EleVue && D:\laragon\bin\php\php-8.3\php.exe artisan job:run" /sc minute /mo 1 /f
|
||||
schtasks /create /tn "RXThinkCMF_Job" /tr "cmd /c cd /d D:\laragon\www\RXThinkCMF_Laravel13_AntdVue && D:\laragon\bin\php\php-8.3\php.exe artisan job:run" /sc minute /mo 1 /f
|
||||
|
||||
# 或通过图形界面:Win+R → 输入 taskschd.msc → 回车
|
||||
```
|
||||
@@ -331,10 +331,10 @@ sudo systemctl start mysql
|
||||
# 创建生产数据库
|
||||
# CHARACTER SET utf8mb4 → 支持 emoji 等四字节字符
|
||||
# COLLATE utf8mb4_general_ci → 不区分大小写的排序规则
|
||||
mysql -u root -proot -e "CREATE DATABASE \`rxthinkcmf.laravel13.elevue\` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;"
|
||||
mysql -u root -proot -e "CREATE DATABASE \`rxthinkcmf.laravel13.antdvue\` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;"
|
||||
|
||||
# 导入初始化数据(项目自带的 SQL 文件)
|
||||
mysql -u root -proot rxthinkcmf.laravel13.elevue < document/mysql/rxthinkcmf.laravel13.elevue.sql
|
||||
mysql -u root -proot rxthinkcmf.laravel13.antdvue < document/mysql/rxthinkcmf.laravel13.antdvue.sql
|
||||
```
|
||||
|
||||
### PostgreSQL
|
||||
@@ -350,7 +350,7 @@ sudo apt install php8.3-pgsql
|
||||
sudo systemctl restart php8.3-fpm
|
||||
|
||||
# 创建数据库(-u postgres 以 postgres 用户执行)
|
||||
sudo -u postgres createdb rxthinkcmf.laravel13.elevue
|
||||
sudo -u postgres createdb rxthinkcmf.laravel13.antdvue
|
||||
```
|
||||
|
||||
### SQLite
|
||||
|
||||
@@ -16,25 +16,25 @@
|
||||
# -proot → 数据库密码(生产环境建议用 -p 后不跟密码,交互式输入)
|
||||
# rxthinkcmf... → 要备份的数据库名
|
||||
# > backup_*.sql → 输出到文件,$(date +%Y%m%d) 自动生成日期后缀
|
||||
mysqldump -u root -proot rxthinkcmf.laravel13.elevue > backup_$(date +%Y%m%d).sql
|
||||
mysqldump -u root -proot rxthinkcmf.laravel13.antdvue > backup_$(date +%Y%m%d).sql
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# 压缩备份(推荐 — 可节省 70%+ 磁盘空间)
|
||||
# -----------------------------------------------------------------------------
|
||||
# | gzip → 将 mysqldump 输出通过管道传给 gzip 压缩
|
||||
mysqldump -u root -proot rxthinkcmf.laravel13.elevue | gzip > backup_$(date +%Y%m%d).sql.gz
|
||||
mysqldump -u root -proot rxthinkcmf.laravel13.antdvue | gzip > backup_$(date +%Y%m%d).sql.gz
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# 仅备份表结构(不含数据 — 用于对比表结构变更)
|
||||
# -----------------------------------------------------------------------------
|
||||
# --no-data → 只导出 CREATE TABLE 语句,不导出数据
|
||||
mysqldump -u root -proot --no-data rxthinkcmf.laravel13.elevue > schema_$(date +%Y%m%d).sql
|
||||
mysqldump -u root -proot --no-data rxthinkcmf.laravel13.antdvue > schema_$(date +%Y%m%d).sql
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# 仅备份数据(不含表结构 — 用于数据迁移)
|
||||
# -----------------------------------------------------------------------------
|
||||
# --no-create-info → 只导出 INSERT 语句,不导出 CREATE TABLE
|
||||
mysqldump -u root -proot --no-create-info rxthinkcmf.laravel13.elevue > data_$(date +%Y%m%d).sql
|
||||
mysqldump -u root -proot --no-create-info rxthinkcmf.laravel13.antdvue > data_$(date +%Y%m%d).sql
|
||||
```
|
||||
|
||||
:::info 大库提示
|
||||
@@ -56,7 +56,7 @@ mysqldump -u root -proot --no-create-info rxthinkcmf.laravel13.elevue > data_$(d
|
||||
# 配置参数(按实际环境修改)
|
||||
# -----------------------------------------------------------------------------
|
||||
BACKUP_DIR="/backup/mysql" # 备份文件存放目录
|
||||
DB_NAME="rxthinkcmf.laravel13.elevue" # 要备份的数据库名
|
||||
DB_NAME="rxthinkcmf.laravel13.antdvue" # 要备份的数据库名
|
||||
DB_USER="root" # 数据库用户名
|
||||
DB_PASS="root" # 数据库密码
|
||||
DATE=$(date +%Y%m%d_%H%M%S) # 当前时间戳(年月日_时分秒)
|
||||
@@ -146,22 +146,22 @@ find $BACKUP_DIR -name "uploads_*.tar.gz" -mtime +30 -delete # 清理 30 天
|
||||
# 从 SQL 文件恢复(全量覆盖)
|
||||
# -----------------------------------------------------------------------------
|
||||
# < backup_*.sql → 将文件内容作为 mysql 命令的输入
|
||||
mysql -u root -proot rxthinkcmf.laravel13.elevue < backup_20260920.sql
|
||||
mysql -u root -proot rxthinkcmf.laravel13.antdvue < backup_20260920.sql
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# 从压缩文件恢复(gunzip 解压后传给 mysql)
|
||||
# -----------------------------------------------------------------------------
|
||||
# gunzip < file.sql.gz → 解压并输出到标准输出
|
||||
# | mysql → 通过管道传给 mysql 命令执行
|
||||
gunzip < backup_20260920.sql.gz | mysql -u root -proot rxthinkcmf.laravel13.elevue
|
||||
gunzip < backup_20260920.sql.gz | mysql -u root -proot rxthinkcmf.laravel13.antdvue
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# 恢复到新数据库(安全起见 — 先验证再切换)
|
||||
# -----------------------------------------------------------------------------
|
||||
# 1. 创建临时验证数据库
|
||||
mysql -u root -proot -e "CREATE DATABASE \`rxthinkcmf.laravel13.elevue_restore\`;"
|
||||
mysql -u root -proot -e "CREATE DATABASE \`rxthinkcmf.laravel13.antdvue_restore\`;"
|
||||
# 2. 恢复备份到临时库
|
||||
mysql -u root -proot rxthinkcmf.laravel13.elevue_restore < backup_20260920.sql
|
||||
mysql -u root -proot rxthinkcmf.laravel13.antdvue_restore < backup_20260920.sql
|
||||
# 3. 验证数据无误后,重命名数据库(需停机操作)
|
||||
```
|
||||
|
||||
@@ -205,7 +205,7 @@ tar -xzf /backup/uploads_20260920.tar.gz -C / www/api/public/uploads/article/
|
||||
# =============================================================================
|
||||
|
||||
BACKUP_FILE=$1 # 第一个参数:备份文件路径
|
||||
VERIFY_DB="rxthinkcmf.laravel13.elevue_verify" # 临时验证数据库名
|
||||
VERIFY_DB="rxthinkcmf.laravel13.antdvue_verify" # 临时验证数据库名
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# 创建验证数据库(先删除旧的,再创建新的)
|
||||
|
||||
@@ -27,9 +27,9 @@
|
||||
**数据库**:
|
||||
|
||||
- [ ] 安装 MySQL 8.0+(或 PostgreSQL / SQL Server / Oracle / SQLite)
|
||||
- [ ] 创建数据库:`CREATE DATABASE \`rxthinkcmf.laravel13.elevue\` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;`
|
||||
- [ ] 创建数据库:`CREATE DATABASE \`rxthinkcmf.laravel13.antdvue\` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;`
|
||||
- [ ] 创建数据库用户并授权
|
||||
- [ ] 导入 SQL 脚本:`mysql -u root -proot rxthinkcmf.laravel13.elevue < document/mysql/rxthinkcmf.laravel13.elevue.sql`
|
||||
- [ ] 导入 SQL 脚本:`mysql -u root -proot rxthinkcmf.laravel13.antdvue < document/mysql/rxthinkcmf.laravel13.antdvue.sql`
|
||||
|
||||
:::info 表结构来源
|
||||
本项目表结构以 SQL 脚本为准(`document/mysql/`),`database/migrations/` 为空,不要依赖 `php artisan migrate` 建表。
|
||||
@@ -150,7 +150,7 @@ server {
|
||||
cp -r /www/api /www/api_backup_$(date +%Y%m%d)
|
||||
|
||||
# 备份数据库(mysqldump 导出 SQL,$(date +%Y%m%d) 自动生成日期后缀)
|
||||
mysqldump -u root -proot rxthinkcmf.laravel13.elevue > /backup/db_$(date +%Y%m%d).sql
|
||||
mysqldump -u root -proot rxthinkcmf.laravel13.antdvue > /backup/db_$(date +%Y%m%d).sql
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# 第 2 步:更新代码
|
||||
@@ -161,7 +161,7 @@ composer install --no-dev --optimize-autoloader # 安装依赖(排除开
|
||||
# -----------------------------------------------------------------------------
|
||||
# 第 3 步:更新数据库(如有迁移脚本)
|
||||
# -----------------------------------------------------------------------------
|
||||
mysql -u root -proot rxthinkcmf.laravel13.elevue < document/mysql/migration.sql
|
||||
mysql -u root -proot rxthinkcmf.laravel13.antdvue < document/mysql/migration.sql
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# 第 4 步:清除并重建缓存
|
||||
@@ -210,7 +210,7 @@ sudo nginx -s reload
|
||||
cp -r /www/api_backup_20260920/* /www/api/
|
||||
|
||||
# 恢复数据库
|
||||
mysql -u root -proot rxthinkcmf.laravel13.elevue < /backup/db_20260920.sql
|
||||
mysql -u root -proot rxthinkcmf.laravel13.antdvue < /backup/db_20260920.sql
|
||||
|
||||
# 重启 PHP-FPM(清除 OPcache,加载旧代码)
|
||||
sudo systemctl restart php8.3-fpm
|
||||
|
||||
@@ -12,11 +12,11 @@
|
||||
|
||||
```text
|
||||
document/
|
||||
├── mysql/rxthinkcmf.laravel13.elevue.sql # MySQL 版本(约 216MB)
|
||||
├── postgresql/rxthinkcmf.laravel13.elevue.sql # PostgreSQL 版本
|
||||
├── sqlserver/rxthinkcmf.laravel13.elevue.sql # SQL Server 版本
|
||||
├── oracle/rxthinkcmf.laravel13.elevue.sql # Oracle 版本
|
||||
└── sqlite/rxthinkcmf.laravel13.elevue.sql # SQLite 版本
|
||||
├── mysql/rxthinkcmf.laravel13.antdvue.sql # MySQL 版本(约 216MB)
|
||||
├── postgresql/rxthinkcmf.laravel13.antdvue.sql # PostgreSQL 版本
|
||||
├── sqlserver/rxthinkcmf.laravel13.antdvue.sql # SQL Server 版本
|
||||
├── oracle/rxthinkcmf.laravel13.antdvue.sql # Oracle 版本
|
||||
└── sqlite/rxthinkcmf.laravel13.antdvue.sql # SQLite 版本
|
||||
```
|
||||
|
||||
各数据库脚本已针对对应的 SQL 语法做了适配,可直接导入。表前缀统一为 `laravel_`(与 `.env` 中 `DB_PREFIX` 一致)。
|
||||
@@ -32,7 +32,7 @@ document/
|
||||
# -u root -proot → 用户名和密码
|
||||
# rxthinkcmf... → 目标数据库名
|
||||
# < file.sql → 将 SQL 文件作为输入执行
|
||||
mysql -u root -proot rxthinkcmf.laravel13.elevue < document/mysql/rxthinkcmf.laravel13.elevue.sql
|
||||
mysql -u root -proot rxthinkcmf.laravel13.antdvue < document/mysql/rxthinkcmf.laravel13.antdvue.sql
|
||||
```
|
||||
|
||||
### PostgreSQL
|
||||
@@ -44,7 +44,7 @@ mysql -u root -proot rxthinkcmf.laravel13.elevue < document/mysql/rxthinkcmf.lar
|
||||
# -U postgres → 连接用户
|
||||
# -d ... → 目标数据库
|
||||
# -f file.sql → 执行 SQL 文件
|
||||
psql -U postgres -d rxthinkcmf.laravel13.elevue -f document/postgresql/rxthinkcmf.laravel13.elevue.sql
|
||||
psql -U postgres -d rxthinkcmf.laravel13.antdvue -f document/postgresql/rxthinkcmf.laravel13.antdvue.sql
|
||||
```
|
||||
|
||||
### SQL Server
|
||||
@@ -58,7 +58,7 @@ psql -U postgres -d rxthinkcmf.laravel13.elevue -f document/postgresql/rxthinkcm
|
||||
# -P root → 密码
|
||||
# -d ... → 目标数据库
|
||||
# -i file.sql → 执行 SQL 文件
|
||||
sqlcmd -S localhost -U sa -P root -d rxthinkcmf.laravel13.elevue -i document/sqlserver/rxthinkcmf.laravel13.elevue.sql
|
||||
sqlcmd -S localhost -U sa -P root -d rxthinkcmf.laravel13.antdvue -i document/sqlserver/rxthinkcmf.laravel13.antdvue.sql
|
||||
```
|
||||
|
||||
### Oracle
|
||||
@@ -69,7 +69,7 @@ sqlcmd -S localhost -U sa -P root -d rxthinkcmf.laravel13.elevue -i document/sql
|
||||
# -----------------------------------------------------------------------------
|
||||
# root/root@localhost:1521/XE → 用户/密码@主机:端口/服务名
|
||||
# @file.sql → 执行 SQL 文件
|
||||
sqlplus root/root@localhost:1521/XE @document/oracle/rxthinkcmf.laravel13.elevue.sql
|
||||
sqlplus root/root@localhost:1521/XE @document/oracle/rxthinkcmf.laravel13.antdvue.sql
|
||||
```
|
||||
|
||||
### SQLite
|
||||
@@ -80,7 +80,7 @@ sqlplus root/root@localhost:1521/XE @document/oracle/rxthinkcmf.laravel13.elevue
|
||||
# -----------------------------------------------------------------------------
|
||||
# 数据库文件路径 → SQLite 数据库存储在单个文件中
|
||||
# < file.sql → 将 SQL 文件作为输入执行
|
||||
sqlite3 database/database.sqlite < document/sqlite/rxthinkcmf.laravel13.elevue.sql
|
||||
sqlite3 database/database.sqlite < document/sqlite/rxthinkcmf.laravel13.antdvue.sql
|
||||
```
|
||||
|
||||
## 跨数据库迁移(CLI)
|
||||
@@ -98,9 +98,9 @@ sqlite3 database/database.sqlite < document/sqlite/rxthinkcmf.laravel13.elevue.s
|
||||
# 目标库不存在时自动创建;迁到 PostgreSQL 需先在 php.ini 启用 extension=pdo_pgsql
|
||||
php artisan db:migrate \
|
||||
--src-type=mysql --src-host=127.0.0.1 --src-port=3306 \
|
||||
--src-database=rxthinkcmf.laravel13.elevue --src-username=root --src-password=root \
|
||||
--src-database=rxthinkcmf.laravel13.antdvue --src-username=root --src-password=root \
|
||||
--dst-type=pgsql --dst-host=127.0.0.1 --dst-port=5432 \
|
||||
--dst-database=rxthinkcmf.laravel13.elevue --dst-username=postgres --dst-password=123456
|
||||
--dst-database=rxthinkcmf.laravel13.antdvue --dst-username=postgres --dst-password=123456
|
||||
```
|
||||
|
||||
## 注意事项
|
||||
|
||||
@@ -55,7 +55,7 @@
|
||||
## 文件结构
|
||||
|
||||
```text
|
||||
RXThinkCMF_Laravel13_EleVue/
|
||||
RXThinkCMF_Laravel13_AntdVue/
|
||||
├── docker/
|
||||
│ ├── Dockerfile # PHP-FPM 应用镜像定义
|
||||
│ ├── nginx.conf # Nginx 站点配置
|
||||
@@ -333,7 +333,7 @@ services:
|
||||
- DB_CONNECTION=mysql
|
||||
- DB_HOST=mysql
|
||||
- DB_PORT=3306
|
||||
- DB_DATABASE=${MYSQL_DATABASE:-rxthinkcmf.laravel13.elevue}
|
||||
- DB_DATABASE=${MYSQL_DATABASE:-rxthinkcmf.laravel13.antdvue}
|
||||
- DB_USERNAME=root
|
||||
- DB_PASSWORD=${MYSQL_ROOT_PASSWORD}
|
||||
|
||||
@@ -347,7 +347,7 @@ services:
|
||||
|
||||
# JWT 密钥 / 文件域名 / 跨域(取自 --env-file)
|
||||
- JWT_SECRET=${JWT_SECRET}
|
||||
- FILE_DOMAIN_URL=${DOMAIN_URL:-http://localhost:8000}
|
||||
- FILE_DOMAIN_URL=${DOMAIN_URL:-http://admin.laravel13.antdvue}
|
||||
- CORS_ALLOW_ORIGIN=${CORS_ALLOW_ORIGIN:-*}
|
||||
|
||||
depends_on:
|
||||
@@ -371,11 +371,11 @@ services:
|
||||
# - "3306:3306"
|
||||
environment:
|
||||
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD} # root 用户密码(>=16 位强密码)
|
||||
MYSQL_DATABASE: ${MYSQL_DATABASE:-rxthinkcmf.laravel13.elevue}
|
||||
MYSQL_DATABASE: ${MYSQL_DATABASE:-rxthinkcmf.laravel13.antdvue}
|
||||
volumes:
|
||||
- mysql_data:/var/lib/mysql # 数据持久化
|
||||
# 初始化 SQL(首次启动自动执行,仅在数据卷为空时生效)
|
||||
- ./document/mysql/rxthinkcmf.laravel13.elevue.sql:/docker-entrypoint-initdb.d/init.sql:ro
|
||||
- ./document/mysql/rxthinkcmf.laravel13.antdvue.sql:/docker-entrypoint-initdb.d/init.sql:ro
|
||||
command:
|
||||
- --character-set-server=utf8mb4
|
||||
- --collation-server=utf8mb4_general_ci
|
||||
@@ -442,7 +442,7 @@ REDIS_PORT=6379
|
||||
|
||||
# MySQL(首次启动自动导入数据库脚本)
|
||||
MYSQL_ROOT_PASSWORD=<16 位以上强密码>
|
||||
MYSQL_DATABASE=rxthinkcmf.laravel13.elevue
|
||||
MYSQL_DATABASE=rxthinkcmf.laravel13.antdvue
|
||||
|
||||
# Redis(与数据库密码不同)
|
||||
REDIS_PASSWORD=<强密码>
|
||||
@@ -497,7 +497,7 @@ docker compose logs -f app
|
||||
|
||||
# 6. 验证
|
||||
curl https://your-domain/up
|
||||
curl http://localhost:8000/api/captcha # 返回 code=0 即成功
|
||||
curl http://admin.laravel13.antdvue/api/captcha # 返回 code=0 即成功
|
||||
```
|
||||
|
||||
### 首次初始化与数据迁移
|
||||
@@ -508,10 +508,10 @@ curl http://localhost:8000/api/captcha # 返回 code=0 即成功
|
||||
|
||||
```bash
|
||||
# Linux / Git Bash
|
||||
docker compose exec -T mysql sh -c 'exec mysql -uroot -p"$MYSQL_ROOT_PASSWORD" rxthinkcmf.laravel13.elevue' < backup.sql
|
||||
docker compose exec -T mysql sh -c 'exec mysql -uroot -p"$MYSQL_ROOT_PASSWORD" rxthinkcmf.laravel13.antdvue' < backup.sql
|
||||
|
||||
# Windows CMD(PowerShell 不支持 < 重定向,用 cmd /c 包裹)
|
||||
cmd /c "docker compose exec -T mysql mysql -uroot -p<密码> rxthinkcmf.laravel13.elevue < backup.sql"
|
||||
cmd /c "docker compose exec -T mysql mysql -uroot -p<密码> rxthinkcmf.laravel13.antdvue < backup.sql"
|
||||
```
|
||||
|
||||
## 日常运维
|
||||
@@ -545,16 +545,16 @@ docker compose logs -f mysql # 数据库日志(首次看导入进度
|
||||
# --------------------------------------------------------------------------
|
||||
docker compose exec app bash # 进入 PHP-FPM 容器
|
||||
docker compose exec mysql bash # 进入 MySQL 容器
|
||||
docker compose exec mysql mysql -uroot -p'<密码>' rxthinkcmf.laravel13.elevue
|
||||
docker compose exec mysql mysql -uroot -p'<密码>' rxthinkcmf.laravel13.antdvue
|
||||
|
||||
# --------------------------------------------------------------------------
|
||||
# 数据库操作
|
||||
# --------------------------------------------------------------------------
|
||||
# 导出数据库备份
|
||||
docker compose exec -T mysql sh -c 'exec mysqldump -uroot -p"$MYSQL_ROOT_PASSWORD" rxthinkcmf.laravel13.elevue' > backup_$(date +%Y%m%d).sql
|
||||
docker compose exec -T mysql sh -c 'exec mysqldump -uroot -p"$MYSQL_ROOT_PASSWORD" rxthinkcmf.laravel13.antdvue' > backup_$(date +%Y%m%d).sql
|
||||
|
||||
# 导入 SQL 文件
|
||||
docker compose exec -T mysql mysql -uroot -p'<密码>' rxthinkcmf.laravel13.elevue < backup.sql
|
||||
docker compose exec -T mysql mysql -uroot -p'<密码>' rxthinkcmf.laravel13.antdvue < backup.sql
|
||||
|
||||
# --------------------------------------------------------------------------
|
||||
# Laravel Artisan 命令
|
||||
@@ -662,10 +662,10 @@ nginx:
|
||||
|
||||
```bash
|
||||
# 数据库备份(定时任务执行)
|
||||
docker compose exec -T mysql sh -c 'exec mysqldump -uroot -p"$MYSQL_ROOT_PASSWORD" rxthinkcmf.laravel13.elevue' > backup_$(date +%F).sql
|
||||
docker compose exec -T mysql sh -c 'exec mysqldump -uroot -p"$MYSQL_ROOT_PASSWORD" rxthinkcmf.laravel13.antdvue' > backup_$(date +%F).sql
|
||||
|
||||
# 数据库恢复
|
||||
docker compose exec -T mysql sh -c 'exec mysql -uroot -p"$MYSQL_ROOT_PASSWORD" rxthinkcmf.laravel13.elevue' < backup_2026-10-01.sql
|
||||
docker compose exec -T mysql sh -c 'exec mysql -uroot -p"$MYSQL_ROOT_PASSWORD" rxthinkcmf.laravel13.antdvue' < backup_2026-10-01.sql
|
||||
|
||||
# 整卷备份(停机快照)
|
||||
docker compose down
|
||||
|
||||
@@ -133,8 +133,8 @@ ALTER USER 'root'@'localhost' IDENTIFIED BY 'strong_password_here';
|
||||
CREATE USER 'rxthinkcmf_app'@'localhost' IDENTIFIED BY 'app_password';
|
||||
|
||||
-- 授权应用用户只能访问项目数据库(最小权限原则)
|
||||
-- rxthinkcmf.laravel13.elevue.* → 该项目数据库的所有表
|
||||
GRANT ALL PRIVILEGES ON `rxthinkcmf.laravel13.elevue`.* TO 'rxthinkcmf_app'@'localhost';
|
||||
-- rxthinkcmf.laravel13.antdvue.* → 该项目数据库的所有表
|
||||
GRANT ALL PRIVILEGES ON `rxthinkcmf.laravel13.antdvue`.* TO 'rxthinkcmf_app'@'localhost';
|
||||
FLUSH PRIVILEGES; -- 刷新权限使配置生效
|
||||
|
||||
-- 禁止远程 root 登录(只允许本地连接)
|
||||
|
||||
@@ -101,7 +101,7 @@ mysql -u root -p -e "SELECT user, host FROM mysql.user;"
|
||||
# ON `数据库`.* → 指定数据库的所有表
|
||||
# TO 'root'@'%' → 允许从任意主机连接的 root 用户
|
||||
# IDENTIFIED BY → 设置密码
|
||||
mysql -u root -proot -e "GRANT ALL ON \`rxthinkcmf.laravel13.elevue\`.* TO 'root'@'%' IDENTIFIED BY 'root';"
|
||||
mysql -u root -proot -e "GRANT ALL ON \`rxthinkcmf.laravel13.antdvue\`.* TO 'root'@'%' IDENTIFIED BY 'root';"
|
||||
mysql -u root -p -e "FLUSH PRIVILEGES;" # 刷新权限使配置生效
|
||||
```
|
||||
|
||||
@@ -116,7 +116,7 @@ sudo systemctl status postgresql
|
||||
# -----------------------------------------------------------------------------
|
||||
# 测试连接(-U 指定用户,-d 指定数据库,-c 执行 SQL)
|
||||
# -----------------------------------------------------------------------------
|
||||
psql -U postgres -d rxthinkcmf.laravel13.elevue -c "SELECT 1;"
|
||||
psql -U postgres -d rxthinkcmf.laravel13.antdvue -c "SELECT 1;"
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# 检查客户端认证配置(pg_hba.conf 控制哪些 IP 可以连接)
|
||||
@@ -173,14 +173,14 @@ php -m | grep pdo_sqlsrv # 查找 pdo_sqlsrv 扩展
|
||||
# -----------------------------------------------------------------------------
|
||||
|
||||
# MySQL:通过 mysql 命令导入 SQL 文件
|
||||
mysql -u root -proot rxthinkcmf.laravel13.elevue < document/mysql/rxthinkcmf.laravel13.elevue.sql
|
||||
mysql -u root -proot rxthinkcmf.laravel13.antdvue < document/mysql/rxthinkcmf.laravel13.antdvue.sql
|
||||
|
||||
# PostgreSQL:通过 psql 命令导入 SQL 文件
|
||||
# -U 指定用户,-d 指定数据库,-f 指定 SQL 文件
|
||||
psql -U postgres -d rxthinkcmf.laravel13.elevue -f document/postgresql/rxthinkcmf.laravel13.elevue.sql
|
||||
psql -U postgres -d rxthinkcmf.laravel13.antdvue -f document/postgresql/rxthinkcmf.laravel13.antdvue.sql
|
||||
|
||||
# SQLite:通过 sqlite3 命令导入 SQL 文件
|
||||
sqlite3 /www/api/database/database.sqlite < document/sqlite/rxthinkcmf.laravel13.elevue.sql
|
||||
sqlite3 /www/api/database/database.sqlite < document/sqlite/rxthinkcmf.laravel13.antdvue.sql
|
||||
```
|
||||
|
||||
:::info 本项目无 migration 建表
|
||||
@@ -286,7 +286,7 @@ sudo chown -R www-data:www-data /www/api/public/uploads/
|
||||
# -----------------------------------------------------------------------------
|
||||
# -H "Authorization: Bearer <token>" → 在请求头中携带 JWT Token
|
||||
# <token> 替换为实际的 access_token 值
|
||||
curl -H "Authorization: Bearer <token>" http://localhost:8000/api/index/getUser
|
||||
curl -H "Authorization: Bearer <token>" http://admin.laravel13.antdvue/api/index/getUser
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# 检查 JWT 密钥配置(缺失或过短会 fail-close,拒绝签发/校验令牌)
|
||||
@@ -301,13 +301,13 @@ grep "^JWT_SECRET" /www/api/.env
|
||||
# 检查用户角色分配(用户是否分配了角色)
|
||||
# -----------------------------------------------------------------------------
|
||||
# laravel_user_role 表存储用户与角色的关联关系
|
||||
mysql -u root -proot rxthinkcmf.laravel13.elevue -e "SELECT * FROM laravel_user_role WHERE user_id=1;"
|
||||
mysql -u root -proot rxthinkcmf.laravel13.antdvue -e "SELECT * FROM laravel_user_role WHERE user_id=1;"
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# 检查角色权限(角色是否分配了菜单权限)
|
||||
# -----------------------------------------------------------------------------
|
||||
# laravel_role_menu 表存储角色与菜单的关联关系
|
||||
mysql -u root -proot rxthinkcmf.laravel13.elevue -e "SELECT * FROM laravel_role_menu WHERE role_id=1;"
|
||||
mysql -u root -proot rxthinkcmf.laravel13.antdvue -e "SELECT * FROM laravel_role_menu WHERE role_id=1;"
|
||||
```
|
||||
|
||||
### 文件上传失败
|
||||
@@ -431,7 +431,7 @@ cd /www/api && php artisan job:daemon --stop
|
||||
# 测试后端路由是否正常(绕过前端,直接请求 API)
|
||||
# -----------------------------------------------------------------------------
|
||||
# -H → 设置请求头(携带 JWT Token)
|
||||
curl http://localhost:8000/api/example/page -H "Authorization: Bearer <token>"
|
||||
curl http://admin.laravel13.antdvue/api/example/page -H "Authorization: Bearer <token>"
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# 检查 Nginx 配置语法是否正确
|
||||
|
||||
Reference in New Issue
Block a user