最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
Ubuntu PHP应用怎样进行备份与恢复
时间:2026-07-19 09:15:35 编辑:袖梨 来源:一聚教程网
Ubuntu PHP应用备份与恢复指南

一、备份方法
1. 备份PHP项目文件
PHP应用的核心文件(如控制器、模型、视图、静态资源)通常存放在/var/www/html/(默认Apache虚拟主机目录)或自定义目录(如/opt/php_app/)。使用tar命令可将目录打包为压缩文件,保留目录结构:tar -czvf php_app_backup_$(date +%Y%m%d).tar.gz /path/to/php/app示例:备份/var/www/my_php_app到/home/user/backups目录:tar -czvf /home/user/backups/my_php_app_backup_20251001.tar.gz /var/www/my_php_app若需增量备份(仅备份修改过的文件),可使用rsync命令:rsync -avz --delete /var/www/my_php_app/ /home/user/backups/php_app_incremental/--delete参数会删除备份目录中不存在于源目录的文件,确保备份一致性。
2. 备份数据库(MySQL为例)
若PHP应用使用MySQL数据库(如WordPress、Laravel),需使用mysqldump工具导出数据库结构和数据。命令格式:mysqldump -u [数据库用户名] -p[数据库密码] [数据库名] > [备份文件名].sql示例:备份my_php_app_db数据库到/home/user/backups目录:mysqldump -u root -p123456 my_php_app_db > /home/user/backups/my_php_app_db_backup_20251001.sql注:-p与密码之间无空格,执行后会提示输入密码。
3. 备份配置文件
配置文件包含应用的敏感信息(如数据库连接、API密钥)和环境设置,需单独备份:
- Apache配置:
/etc/apache2/sites-available/(虚拟主机配置)、/etc/apache2/apache2.conf(主配置文件); - PHP配置:
/etc/php/8.1/apache2/php.ini(PHP模块配置,根据PHP版本调整)、/etc/php/8.1/cli/php.ini(命令行PHP配置); - 应用配置:如Laravel的
.env文件(存储数据库连接、APP_KEY等)、WordPress的wp-config.php文件。备份命令示例:cp -r /etc/apache2/sites-available/ /home/user/backups/apache_sites/cp /etc/php/8.1/apache2/php.ini /home/user/backups/php_ini_backup.inicp /var/www/my_php_app/.env /home/user/backups/.env_backup。
4. 自动化备份(可选)
通过Shell脚本+cron定时任务实现自动备份,减少手动操作。
- 创建备份脚本(如
/home/user/backup_php_app.sh):
#!/bin/bash# 设置备份目录BACKUP_DIR="/home/user/backups"# 设置日期格式DATE=$(date +%Y%m%d)# 备份PHP项目文件tar -czvf "$BACKUP_DIR/php_app_backup_$DATE.tar.gz" /var/www/my_php_app# 备份数据库mysqldump -u root -p123456 my_php_app_db > "$BACKUP_DIR/my_php_app_db_backup_$DATE.sql"# 删除7天前的备份文件(避免占用过多空间)find "$BACKUP_DIR" -type f -name "*.tar.gz" -mtime +7 -exec rm {} ;find "$BACKUP_DIR" -type f -name "*.sql" -mtime +7 -exec rm {} ;echo "Backup completed on $(date)" >> "$BACKUP_DIR/backup.log"- 赋予脚本执行权限:
chmod +x /home/user/backup_php_app.sh; - 添加cron任务:运行
crontab -e,添加以下行(每天凌晨2点执行):0 2 * * * /home/user/backup_php_app.sh。
二、恢复方法
1. 恢复PHP项目文件
若需恢复PHP项目文件,使用tar命令解压备份文件到目标目录:tar -xzvf /path/to/backup/php_app_backup_20251001.tar.gz -C /path/to/restore示例:将/home/user/backups/my_php_app_backup_20251001.tar.gz恢复到/var/www/my_php_app:tar -xzvf /home/user/backups/my_php_app_backup_20251001.tar.gz -C /var/www/my_php_app若使用rsync进行增量恢复,可将备份目录同步到原目录:rsync -avz /home/user/backups/php_app_incremental/ /var/www/my_php_app/。
2. 恢复数据库
若需恢复MySQL数据库,先确保目标数据库存在(若不存在则创建):mysql -u root -p -e "CREATE DATABASE my_php_app_db;"然后使用mysql命令导入备份文件:mysql -u root -p my_php_app_db < /path/to/backup/my_php_app_db_backup_20251001.sql示例:恢复/home/user/backups/my_php_app_db_backup_20251001.sql到my_php_app_db数据库:mysql -u root -p123456 my_php_app_db < /home/user/backups/my_php_app_db_backup_20251001.sql。
3. 恢复配置文件
将备份的配置文件复制回原始位置,覆盖现有文件(需谨慎操作,避免误覆盖):
- Apache配置:
cp -r /home/user/backups/apache_sites/* /etc/apache2/sites-available/; - PHP配置:
cp /home/user/backups/php_ini_backup.ini /etc/php/8.1/apache2/php.ini; - 应用配置:
cp /home/user/backups/.env_backup /var/www/my_php_app/.env修改完成后,重启Apache服务使配置生效:systemctl restart apache2。
三、注意事项
- 备份文件安全:将备份文件存储在安全位置(如外部硬盘、云存储),避免未经授权的访问;对敏感备份文件(如包含数据库密码的配置文件)进行加密。
- 定期测试恢复:每季度测试一次备份文件的恢复过程,确保备份文件未损坏且可正常使用。
- 避免数据不一致:备份前停止Web服务器(
systemctl stop apache2)和数据库服务(systemctl stop mysql),避免备份过程中数据修改导致不一致;恢复后重启服务。 - 多维度备份:同时备份项目文件、数据库和配置文件,确保应用完整恢复。
相关文章
- 逆战未来枪械大全 逆战未来枪械稀有度等级与获取方式详解 07-19
- 逆战未来新手攻略 逆战未来萌新入门避坑指南 07-19
- "无醇啤酒"是完全不含酒精吗 蚂蚁庄园1月17日答案早知道 07-19
- "太常寺"是古代掌管什么事务的机构 蚂蚁新村1月16日答案 07-19
- 四川名菜"开水白菜"就是用开水炖白菜吗 蚂蚁庄园1月17日答案早知道 07-19
- 蚂蚁新村今天正确答案1.16 07-19