在CentOS上给PHP应用程序做备份和恢复,其实思路很清晰,核心就是两样东西:数据库和文件系统。只要把这两块拿稳了,出问题时就能快速回血。

备份
先说说备份怎么干。
备份数据库:最常见的就是用mysqldump把MySQL导出来。命令格式很简单:
mysqldump -u [用户名] -p[密码] [数据库名] > backup.sql
举个例子,你要备份一个叫mydatabase的库,用户名root,密码是MySecretPassword,那就这样写:
mysqldump -u root -pMySecretPassword mydatabase > mydatabase_backup.sql
备份文件系统:整个应用程序目录用tar打包最省事。基本命令:
tar -czvf /path/to/backup/myapp_backup.tar.gz /path/to/myapp
比如你的应用放在/var/www/html/myapp,想把它打包到/home/user/backups下:
tar -czvf /home/user/backups/myapp_backup.tar.gz /var/www/html/myapp
备份配置文件:别忘了那些自定义的配置文件,往往藏在/etc或其他地方。同样用tar包一下:
tar -czvf /path/to/backup/config_backup.tar.gz /path/to/config
比如:
tar -czvf /home/user/backups/config_backup.tar.gz /etc/myapp
恢复
万一出了问题,恢复的步骤几乎是备份的镜像操作。
恢复数据库:用mysql命令把SQL文件导进去:
mysql -u [用户名] -p[密码] [数据库名] < backup.sql
对应之前的例子:
mysql -u root -pMySecretPassword mydatabase < mydatabase_backup.sql
恢复文件系统:把之前打包的tar解压到原来的目录(注意-C /指定根目录,解压时会恢复完整路径):
tar -xzvf /path/to/backup/myapp_backup.tar.gz -C /
实例:
tar -xzvf /home/user/backups/myapp_backup.tar.gz -C /var/www/html
恢复配置文件:同理操作:
tar -xzvf /path/to/backup/config_backup.tar.gz -C /
例如:
tar -xzvf /home/user/backups/config_backup.tar.gz -C /etc
注意事项
几个关键点值得多说两句。
- 备份频率:到底多久备份一次?这取决于你的应用有多重要、数据变化有多快。核心业务最好每日甚至每小时增量备份,普通项目每周一次或许也够。
- 备份存储:别把所有鸡蛋放一个篮子里。本地存一份,异地或云上再存一份,万一服务器硬盘挂了还有个退路。
- 测试恢复:这一点很容易被忽视——备份文件本身是否可用?定期找台测试机或者临时目录做一次恢复演练,确认你的备份不是一堆废数据。
- 权限管理:备份文件里可能包含敏感数据(比如数据库密码的明文),记得设置好文件权限,别让无关人员随便就能看到。
把这些步骤串起来,在CentOS上备份和恢复PHP应用就不是什么难事。关键是养成习惯:备份要勤、存储要稳、恢复要验。这样真遇到故障时,心里才不慌。