备份ThinkPHP项目需覆盖项目文件、数据库、配置文件三大核心内容,确保数据完整性。
使用tar命令打包项目目录(如/var/www/your_project),排除临时文件目录(如runtime,避免备份无用缓存):
sudo tar -czvf /backup/your_project_backup_$(date +\%F).tar.gz /var/www/your_project --exclude=/var/www/your_project/runtime
-czvf表示创建gzip压缩包并显示详细过程;--exclude用于排除指定目录;$(date +\%F)生成当前日期(如2025-10-11),便于区分备份版本。通过mysqldump导出数据库(需替换root、password、your_database为实际信息):
mysqldump -u root -p'password' your_database > /backup/your_database_backup_$(date +\%F).sql
-p与密码之间无空格;若数据库用户有远程访问权限,可添加-h hostname指定服务器地址。tp5er/tp5-databackup扩展):php think backup --db --path=/backup
备份文件默认存储在runtime/backup目录,可通过--path参数自定义路径。单独备份项目配置目录(如/var/www/your_project/config),避免配置丢失:
sudo tar -czvf /backup/your_project_config_backup_$(date +\%F).tar.gz /var/www/your_project/config
恢复项目时需按数据库→项目文件→配置文件的顺序操作,确保依赖关系正确。
使用mysql命令导入备份的SQL文件(需确保数据库已存在):
mysql -u root -p'password' your_database < /backup/your_database_backup_2025-10-11.sql
php think restore --db --file=/backup/your_database_backup_2025-10-11.sql
恢复前需确认备份文件的完整性(如检查文件大小、解压后查看表结构)。解压项目备份文件至原路径(如/var/www/your_project):
sudo tar -xzvf /backup/your_project_backup_2025-10-11.tar.gz -C /var/www/
sudo chown -R apache:apache /var/www/your_project # 若使用Apache
sudo chmod -R 755 /var/www/your_project # 授权目录可读可执行
解压配置备份文件并覆盖原目录:
sudo tar -xzvf /backup/your_project_config_backup_2025-10-11.tar.gz -C /var/www/your_project/
www-data或apache用户),避免因权限不足导致无法访问。crontab设置定期备份(如每日凌晨2点),减少人工操作风险。示例:crontab -e
添加以下内容(每日凌晨2点备份数据库和配置文件):0 2 * * * /usr/bin/mysqldump -u root -p'password' your_database > /backup/your_database_$(date +\%F).sql
0 2 * * * /usr/bin/tar -czvf /backup/your_project_config_$(date +\%F).tar.gz /var/www/your_project/config
保存后,cron会自动执行备份任务。通过以上步骤,可实现CentOS上ThinkPHP项目的有效备份与恢复,保障项目数据安全。