一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

Ubuntu PHP应用怎样进行备份与恢复

时间:2026-07-19 09:15:35 编辑:袖梨 来源:一聚教程网

Ubuntu PHP应用备份与恢复指南

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_apptar -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.sqlmy_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),避免备份过程中数据修改导致不一致;恢复后重启服务。
  • 多维度备份:同时备份项目文件、数据库和配置文件,确保应用完整恢复。

热门栏目