温馨提示×

centos下phpstorm项目如何备份

小樊
34
2025-11-21 20:55:07
栏目: 编程语言

CentOS 下 PhpStorm 项目备份与恢复指南

一 备份策略与准备

  • 明确备份范围:优先备份你的项目源码目录(含业务代码、依赖清单如 composer.json/composer.lock、数据库迁移脚本等),以及 PhpStorm 配置与插件(便于在新环境快速恢复开发体验)。
  • 选择备份方式:按重要性选择全量打包定时增量同步实时同步到远程服务器,必要时组合使用。
  • 准备存储与目录:在 CentOS 上创建专用备份目录(如 /backup),并确保有读写权限足够的磁盘空间

二 项目代码备份

  • 全量打包归档(适合一次性快照)
    1. 创建备份目录并打包:
    sudo mkdir -p /backup
    tar -czvf /backup/backup_$(date +%Y%m%d_%H%M%S).tar.gz /path/to/PhpStormProjects/your_project
    
    1. 远程拷贝(可选):
    scp /backup/backup_*.tar.gz user@remote:/backup/
    
    1. 恢复:
    tar -xzvf /backup/backup_20251121_101010.tar.gz -C /path/to/restore
    
  • 定时增量同步(适合日常备份)
    1. 安装 rsync(如未安装):
    sudo yum install -y rsync
    
    1. 创建备份脚本 /backup/backup.sh
    #!/bin/bash
    SOURCE_DIR="/path/to/PhpStormProjects/your_project"
    BACKUP_DIR="/backup/your_project"
    LOG_FILE="/backup/backup.log"
    
    mkdir -p "$BACKUP_DIR"
    rsync -avz --delete "$SOURCE_DIR/" "$BACKUP_DIR/" >> "$LOG_FILE" 2>&1
    
    1. 赋权并添加到 crontab(每天 02:00 执行):
    chmod +x /backup/backup.sh
    (crontab -l 2>/dev/null; echo "0 2 * * * /backup/backup.sh") | crontab -
    
  • 实时自动同步到远程服务器(适合开发-测试/预发环境)
    1. 在 PhpStorm 打开:Tools → Deployment → Configuration,新增 SFTP 服务器,填写 Host/Port/User/Auth,设置 Root pathMappings(本地项目路径 ↔ 远程部署路径)。
    2. Tools → Deployment → OptionsUpload changed files 设为 On explicit save action,或勾选 Automatic Upload,实现保存即同步。
    3. 建议先在远程目录做一次全量上传,再启用自动/保存时同步,避免遗漏历史文件。

三 备份 PhpStorm 配置与插件

  • 关闭 PhpStorm 后备份配置目录(不同版本目录名不同):
# 查找配置目录
find ~ -type d -name ".PhpStorm*"

# 备份(示例版本号)
cp -R ~/.PhpStorm2024.3 ~/Documents/PhpStormBackup_2024.3
  • 恢复时,将备份目录复制回用户主目录同名路径即可(注意版本匹配)。

四 恢复与验证

  • 代码恢复:按“全量打包”或“增量同步”步骤解压/同步到目标路径,确认目录结构与关键文件(如 .ideacomposer.json)完整。
  • 运行依赖:进入项目目录执行安装(如适用):
cd /path/to/restore/your_project
composer install --optimize-autoloader --no-dev
  • 配置恢复:将备份的 .PhpStorm* 目录复制回 ~/,启动 PhpStorm 检查 Settings/PreferencesPluginsKeymap 是否生效。
  • 远程同步校验:在 PhpStorm 打开 Tools → Deployment → Browse Remote Host,核对远程文件与本地一致性;如有自动/保存时上传,做一次小改动并保存验证同步是否触发。

0