# Recommended Directory Structure

## Current Structure (Not Ideal)
```
/var/www/html/wordpress6/wordpress/EP/migration/
```
**Issues:**
- Too deeply nested
- Mixes web content with admin tools
- Hard to find and manage
- Not following Linux FHS standards

## Recommended Standard Structure

### Option 1: `/opt/migration/` (RECOMMENDED) ⭐

```
/opt/
└── migration/                    # Migration tools and scripts
    ├── scripts/                  # Executable scripts
    │   ├── prepare-new-server.sh
    │   ├── inventory-applications.sh
    │   ├── analyze-databases.sh
    │   └── find-unused-files.sh
    ├── docs/                     # Documentation
    │   ├── README.md
    │   ├── SERVER_MIGRATION_PLAN.md
    │   ├── OFFLINE_MIGRATION_GUIDE.md
    │   └── ...
    ├── logs/                     # Migration logs
    │   └── prepare-server-*.log
    └── templates/               # Migration templates
        └── apache-vhost-template.conf
```

**Advantages:**
- ✅ Not web-accessible (security)
- ✅ Follows Linux FHS standard (`/opt` for optional software)
- ✅ Clean and organized
- ✅ Easy to find: `/opt/migration/`
- ✅ Can be backed up separately

### Option 2: `/usr/local/migration/`

Similar structure to Option 1, but uses `/usr/local/` which is also standard for local administrator software.

### Option 3: `/root/migration/` (Simple but less organized)

Good for quick setup, but less ideal for:
- Multi-user environments
- Long-term maintenance
- Following standards

## Complete Recommended Structure

```
/opt/
└── migration/                    # Migration tools
    ├── scripts/
    ├── docs/
    ├── logs/
    └── templates/

/var/www/html/                    # Web applications (standard Apache root)
├── billing/                     # WHMCS
├── mainsite/                    # Main WordPress
├── wordpress6/                  # WordPress6
├── elparaiso-frontend/          # El Paraiso
├── puebloarabesque/             # Pueblo Arabesque
└── ...

/backup/                         # Backups (already in prepare script)
├── applications/                # Application backups
├── databases/                   # Database backups
└── configs/                     # Configuration backups

/var/log/
└── applications/                # Application logs (already in prepare script)
```

## Migration Steps

### Step 1: Create New Structure on Old Server

```bash
# Create new directory structure
sudo mkdir -p /opt/migration/{scripts,docs,logs,templates}

# Move migration files
sudo mv /var/www/html/wordpress6/wordpress/EP/migration/*.sh /opt/migration/scripts/
sudo mv /var/www/html/wordpress6/wordpress/EP/migration/*.md /opt/migration/docs/
sudo mv /var/www/html/wordpress6/wordpress/EP/migration/*.conf /opt/migration/templates/ 2>/dev/null || true

# Set permissions
sudo chown -R root:root /opt/migration
sudo chmod -R 755 /opt/migration
sudo chmod +x /opt/migration/scripts/*.sh
```

### Step 2: Update Script References

Update any scripts that reference the old path:
```bash
# Find scripts referencing old path
grep -r "/var/www/html/wordpress6/wordpress/EP/migration" /opt/migration/scripts/

# Update references (example)
sed -i 's|/var/www/html/wordpress6/wordpress/EP/migration|/opt/migration|g' /opt/migration/scripts/*.sh
```

### Step 3: Update Documentation

Update all `.md` files to reference new paths:
```bash
# Update documentation
sed -i 's|/var/www/html/wordpress6/wordpress/EP/migration|/opt/migration|g' /opt/migration/docs/*.md
```

### Step 4: Test

```bash
# Test scripts work from new location
cd /opt/migration/scripts
./inventory-applications.sh
```

### Step 5: Copy to New Server

```bash
# Copy entire migration directory to new server
rsync -avz /opt/migration/ root@vps2.scala4.com:/opt/migration/
```

## Benefits of New Structure

1. **Security**: `/opt/migration/` is not web-accessible
2. **Organization**: Clear separation of scripts, docs, logs
3. **Standards**: Follows Linux Filesystem Hierarchy Standard
4. **Maintainability**: Easy to find and manage
5. **Scalability**: Easy to add more tools and scripts
6. **Backup**: Can backup `/opt/migration/` separately from web content

## Quick Reference

**Old path:**
```bash
cd /var/www/html/wordpress6/wordpress/EP/migration
```

**New path:**
```bash
cd /opt/migration/scripts
```

**Documentation:**
```bash
cd /opt/migration/docs
```

---

**Recommendation:** Use `/opt/migration/` - it's the most standard and secure option.



