centos

centos上thinkphp项目如何备份与恢复

小樊
45
2025-10-21 19:43:10
栏目: 编程语言

一、备份流程

1. 备份项目文件

使用tar命令打包ThinkPHP项目目录(如/var/www/your_project),排除临时文件目录(如runtime,避免缓存、日志等冗余数据干扰备份):

cd /var/www  # 进入项目上级目录
sudo tar -czvf your_project_backup.tar.gz --exclude='your_project/runtime' your_project

2. 备份数据库

方法1:使用mysqldump命令(推荐)

通过MySQL官方工具导出数据库结构(表、视图)与数据,适用于所有MySQL/MariaDB版本:

mysqldump -u root -p'your_password' your_database > /backup/db_backup.sql

方法2:通过ThinkPHP内置命令

若项目已集成tp5er/tp5-databackup扩展,可直接通过命令行备份:

cd /var/www/your_project  # 进入项目根目录
php think backup --db --path=/backup

3. 备份配置文件

ThinkPHP的核心配置(数据库连接、路由规则、缓存设置等)存储在config/目录,需单独备份:

sudo tar -czvf config_backup.tar.gz /var/www/your_project/config

4. 自动化备份设置

通过crontab定时执行备份脚本,避免人工遗漏。编辑当前用户的cron任务:

crontab -e

添加以下内容(每天凌晨2点备份数据库、3点备份项目文件、4点备份配置文件):

# 每天凌晨2点备份数据库
0 2 * * * mysqldump -u root -p'your_password' your_database > /backup/db_$(date +\%F).sql
# 每天凌晨3点备份项目文件
0 3 * * * tar -czvf /backup/your_project_$(date +\%F).tar.gz --exclude='your_project/runtime' /var/www/your_project
# 每天凌晨4点备份配置文件
0 4 * * * tar -czvf /backup/config_$(date +\%F).tar.gz /var/www/your_project/config

二、恢复流程

1. 恢复数据库

方法1:使用mysql命令导入

若备份文件为SQL格式,直接导入目标数据库(需确保数据库已存在):

mysql -u root -p'your_password' your_database < /backup/db_backup.sql

方法2:通过ThinkPHP命令恢复

若备份文件为ThinkPHP生成的格式(如runtime/db_backup/下的文件),可使用内置命令:

cd /var/www/your_project  # 进入项目根目录
php think restore --db --file=/backup/db_backup.sql

2. 恢复项目文件

解压项目备份文件至原路径(如/var/www/your_project),覆盖现有文件:

sudo tar -xzvf /backup/your_project_backup.tar.gz -C /var/www/
sudo chown -R apache:apache /var/www/your_project  # 若使用Apache
sudo chmod -R 755 /var/www/your_project/runtime  # 确保runtime目录可写

3. 恢复配置文件

解压配置备份文件至项目config/目录,覆盖原有配置:

sudo tar -xzvf /backup/config_backup.tar.gz -C /var/www/your_project/

三、注意事项

1. 权限问题

2. 路径一致性

3. 安全性保障

4. 测试与维护

# 在备份脚本中添加以下命令(删除7天前的.sql文件)
find /backup -name "your_project_*.sql" -mtime +7 -exec rm -f {} \;

0
看了该问题的人还看了