在CentOS系统上备份ThinkPHP项目,需兼顾项目文件(代码、配置)、数据库(数据)两部分,同时建议通过自动化定时任务减少手动操作。以下是具体步骤:
tar(归档工具)、mysqldump(MySQL备份工具)。若未安装,可通过以下命令安装:sudo yum install -y tar mysql-server mysql-devel /var/www/html/my_thinkphp_project(根据实际情况调整)。使用tar命令将项目目录打包为压缩文件(减少存储空间占用),并存储到指定备份目录(如/backups):
# 创建备份目录(若不存在) sudo mkdir -p /backups/thinkphp_projects # 进入项目父目录 cd /var/www/html # 打包项目目录(排除不必要的文件,如缓存、日志) sudo tar -czvf /backups/thinkphp_projects/my_thinkphp_project_$(date +%F).tar.gz \ --exclude='runtime/cache' \ --exclude='runtime/log' \ my_thinkphp_project --exclude:排除临时文件(如缓存、日志),避免备份文件过大;$(date +%F):生成当前日期(如2025-10-19),便于区分不同时间的备份文件。ThinkPHP项目的数据库存储了核心业务数据(如用户信息、订单数据),需使用mysqldump命令导出:
# 登录MySQL(输入密码) mysql -u root -p # 查看数据库列表(确认项目数据库名,如`my_thinkphp_db`) SHOW DATABASES; # 退出MySQL exit; # 导出数据库(替换为实际数据库名、用户名、密码) mysqldump -u root -p my_thinkphp_db > /backups/thinkphp_projects/my_thinkphp_db_$(date +%F).sql mysqldump命令后,系统会提示输入数据库密码;.sql格式保存,包含数据库表结构和数据。通过cron设置每日自动备份,避免手动遗忘。
sudo crontab -e 0 2 * * * /bin/bash -c 'cd /var/www/html && tar -czvf /backups/thinkphp_projects/my_thinkphp_project_$(date +\%F).tar.gz --exclude="runtime/cache" --exclude="runtime/log" my_thinkphp_project' 0 2 * * * /usr/bin/mysqldump -u root -pYourDBPassword my_thinkphp_db > /backups/thinkphp_projects/my_thinkphp_db_$(date +\%F).sql YourDBPassword替换为实际数据库密码(-p与密码之间无空格);-p(无密码)并在后续输入,或通过配置文件(如~/.my.cnf)存储密码。tar -xzvf my_thinkphp_project_2025-10-19.tar.gz,查看文件结构是否正常)。find命令):find /backups/thinkphp_projects -name "*.tar.gz" -mtime +7 -delete find /backups/thinkphp_projects -name "*.sql" -mtime +7 -delete 700(仅root可读写),防止未授权访问:sudo chmod -R 700 /backups/thinkphp_projects scp传输到本地计算机);~/.my.cnf)存储数据库凭证。通过以上步骤,可实现CentOS上ThinkPHP项目的完整备份,并通过自动化任务减少维护成本。备份是数据安全的最后一道防线,建议定期测试备份文件的恢复流程,确保备份有效性。