温馨提示×

debian怎么备份laravel

小樊
47
2026-08-17 00:30:05
栏目: 智能运维

在 Debian 上备份 Laravel 项目,一般包含 代码、配置、依赖、数据库、上传文件 等。下面给你一套实战常用方案,从简单到更专业。


一、备份哪些内容(重点)

一个 Laravel 项目通常需要备份:

内容 是否必须 说明
项目代码 /var/www/your_project
.env 数据库密码、APP_KEY
vendor/ 可通过 composer install 恢复
storage/ 日志、缓存、上传文件
数据库 MySQL / PostgreSQL
Composer 版本 ⚠️ 建议记录

二、基础手动备份(新手推荐)

1️⃣ 备份项目目录

cd /var/www
tar -czvf laravel_backup_$(date +%F).tar.gz your_project

包含:

  • 代码
  • .env
  • storage/

⚠️ 注意:不要备份 node_modules(前端项目)


2️⃣ 备份数据库(MySQL 示例)

mysqldump -u用户名 -p 数据库名 > db_backup_$(date +%F).sql

例如:

mysqldump -u root -p laravel > laravel_db_2026-01-21.sql

3️⃣ 备份到安全位置

mkdir -p /backup/laravel
mv laravel_backup_*.tar.gz /backup/laravel/
mv laravel_db_*.sql /backup/laravel/

三、自动备份脚本(推荐)

1️⃣ 创建备份脚本

nano /usr/local/bin/backup_laravel.sh

内容示例:

#!/bin/bash

DATE=$(date +%F)
PROJECT_DIR=/var/www/your_project
BACKUP_DIR=/backup/laravel
DB_NAME=laravel
DB_USER=root

mkdir -p $BACKUP_DIR

# 备份代码
tar -czvf $BACKUP_DIR/code_$DATE.tar.gz $PROJECT_DIR

# 备份数据库
mysqldump -u$DB_USER -p  $DB_NAME > $BACKUP_DIR/db_$DATE.sql

# 保留 7 天
find $BACKUP_DIR -type f -mtime +7 -delete

⚠️ 数据库密码安全写法:建议用 ~/.my.cnf


2️⃣ 赋予执行权限

chmod +x /usr/local/bin/backup_laravel.sh

3️⃣ 设置定时任务(cron)

crontab -e

每天凌晨 2 点备份:

0 2 * * * /usr/local/bin/backup_laravel.sh >> /var/log/laravel_backup.log 2>&1

四、使用 Laravel 自带备份(专业方案 ✅)

1️⃣ 安装 spatie/laravel-backup

composer require spatie/laravel-backup

2️⃣ 发布配置

php artisan vendor:publish --provider="Spatie\Backup\BackupServiceProvider"

配置文件:

config/backup.php

3️⃣ 执行备份

php artisan backup:run

✅ 自动备份:

  • 代码
  • .env
  • 数据库
  • storage/

4️⃣ 定时任务(推荐)

crontab -e
* * * * * cd /var/www/your_project && php artisan schedule:run >> /dev/null 2>&1

并在 app/Console/Kernel.php 中:

$schedule->command('backup:run')->daily();

五、恢复 Laravel 项目(简要)

1️⃣ 恢复代码

tar -xzvf code_2026-01-21.tar.gz -C /var/www/

2️⃣ 恢复数据库

mysql -u root -p laravel < db_2026-01-21.sql

3️⃣ 重新生成环境

cp .env.example .env
php artisan key:generate
composer install --no-dev
php artisan migrate

六、备份建议(生产环境)

代码 + 数据库分离备份
备份到远程服务器 / 对象存储(OSS、S3)
定期测试恢复流程
不要备份 vendor、node_modules


如果你愿意,可以告诉我:

  • Laravel 版本
  • 数据库类型(MySQL / PostgreSQL)
  • 是否生产环境

我可以帮你定制一套 Debian + Laravel 完整备份方案

0