温馨提示×

ubuntu如何备份thinkphp数据

小樊
40
2026-10-01 15:40:22
栏目: 编程语言

在 Ubuntu 上备份 ThinkPHP 项目的数据,通常包含两部分:

  1. 数据库数据(如 MySQL / MariaDB)
  2. 项目文件(代码、上传文件、配置等)

下面按常见场景给你一套实用方案。


一、备份数据库(最重要)

1️⃣ 查看数据库信息

ThinkPHP 的数据库配置一般在:

项目目录/config/database.php

或(旧版本):

项目目录/application/database.php

确认:

  • 数据库类型(通常是 mysql)
  • 数据库名
  • 用户名
  • 密码

2️⃣ 使用 mysqldump 备份

mysqldump -u 用户名 -p 数据库名 > /backup/thinkphp_db_$(date +%F).sql

示例:

mysqldump -u root -p thinkphp > /backup/thinkphp_2026-01-15.sql

输入密码后开始备份


3️⃣ 压缩备份(推荐)

mysqldump -u root -p thinkphp | gzip > /backup/thinkphp_$(date +%F).sql.gz

二、备份 ThinkPHP 项目文件

1️⃣ 项目目录结构(常见)

/var/www/html/thinkphp/
├── app/
├── public/
├── runtime/
├── config/
├── vendor/
└── uploads/  (如果有)

2️⃣ 打包项目(排除 runtime 缓存)

tar -czvf /backup/thinkphp_project_$(date +%F).tar.gz \
  --exclude=/var/www/html/thinkphp/runtime \
  /var/www/html/thinkphp

三、一键备份脚本(推荐)

创建脚本:

nano /usr/local/bin/backup_thinkphp.sh

内容示例:

#!/bin/bash

DATE=$(date +%F)
BACKUP_DIR=/backup
DB_USER=root
DB_PASS=你的密码
DB_NAME=thinkphp
PROJECT_DIR=/var/www/html/thinkphp

mkdir -p $BACKUP_DIR

# 备份数据库
mysqldump -u$DB_USER -p$DB_PASS $DB_NAME | gzip > $BACKUP_DIR/db_$DATE.sql.gz

# 备份项目
tar -czvf $BACKUP_DIR/project_$DATE.tar.gz \
  --exclude=$PROJECT_DIR/runtime \
  $PROJECT_DIR

赋予权限:

chmod +x /usr/local/bin/backup_thinkphp.sh

四、定时自动备份(crontab)

crontab -e

每天凌晨 2 点备份:

0 2 * * * /usr/local/bin/backup_thinkphp.sh

五、恢复数据(备用)

恢复数据库

gunzip < db_2026-01-15.sql.gz | mysql -u root -p thinkphp

恢复项目

tar -xzvf project_2026-01-15.tar.gz -C /

六、云服务器建议

  • 同时备份到 对象存储(OSS / S3)
  • 保留最近 7~30 天备份
  • 不要只备份代码,数据库才是核心

如果你愿意,可以告诉我:

  • ThinkPHP 版本(5.0 / 5.1 / 6.0)
  • 数据库类型
  • 是否用 Docker

我可以给你更精确的备份方案。

0 踩