在 Debian 上备份 Laravel 项目,一般包含 代码、配置、依赖、数据库、上传文件 等。下面给你一套实战常用方案,从简单到更专业。
一个 Laravel 项目通常需要备份:
| 内容 | 是否必须 | 说明 |
|---|---|---|
| 项目代码 | ✅ | /var/www/your_project |
.env |
✅ | 数据库密码、APP_KEY |
vendor/ |
❌ | 可通过 composer install 恢复 |
storage/ |
✅ | 日志、缓存、上传文件 |
| 数据库 | ✅ | MySQL / PostgreSQL |
| Composer 版本 | ⚠️ | 建议记录 |
cd /var/www
tar -czvf laravel_backup_$(date +%F).tar.gz your_project
包含:
.envstorage/⚠️ 注意:不要备份
node_modules(前端项目)
mysqldump -u用户名 -p 数据库名 > db_backup_$(date +%F).sql
例如:
mysqldump -u root -p laravel > laravel_db_2026-01-21.sql
mkdir -p /backup/laravel
mv laravel_backup_*.tar.gz /backup/laravel/
mv laravel_db_*.sql /backup/laravel/
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
chmod +x /usr/local/bin/backup_laravel.sh
crontab -e
每天凌晨 2 点备份:
0 2 * * * /usr/local/bin/backup_laravel.sh >> /var/log/laravel_backup.log 2>&1
composer require spatie/laravel-backup
php artisan vendor:publish --provider="Spatie\Backup\BackupServiceProvider"
配置文件:
config/backup.php
php artisan backup:run
✅ 自动备份:
.envstorage/crontab -e
* * * * * cd /var/www/your_project && php artisan schedule:run >> /dev/null 2>&1
并在 app/Console/Kernel.php 中:
$schedule->command('backup:run')->daily();
tar -xzvf code_2026-01-21.tar.gz -C /var/www/
mysql -u root -p laravel < db_2026-01-21.sql
cp .env.example .env
php artisan key:generate
composer install --no-dev
php artisan migrate
✅ 代码 + 数据库分离备份
✅ 备份到远程服务器 / 对象存储(OSS、S3)
✅ 定期测试恢复流程
✅ 不要备份 vendor、node_modules
如果你愿意,可以告诉我:
我可以帮你定制一套 Debian + Laravel 完整备份方案 ✅