# Simple Step-by-Step Migration

## Step 1: Create Directory Structure on NEW Server

**On NEW server (vps2.scala4.com):**

```bash
# SSH to new server
ssh root@vps2.scala4.com

# Create the migration tools directory
mkdir -p /opt/migration/scripts
mkdir -p /opt/migration/docs
mkdir -p /opt/migration/logs

# Create backup directories
mkdir -p /backup/applications
mkdir -p /backup/databases
mkdir -p /backup/configs

# Set permissions
chmod -R 755 /opt/migration
chmod -R 755 /backup
```

**Done!** Directory structure is ready.

---

## Step 2: Find Which WordPress is scala4.com

**On OLD server, find the WordPress site:**

```bash
# Check Apache virtual hosts to find scala4.com
grep -r "scala4.com" /etc/apache2/sites-available/

# Or list all WordPress directories
ls -la /var/www/html/ | grep -i wordpress
ls -la /var/www/html/wordpress6/
```

**Common locations:**
- `/var/www/html/wordpress6/` - Main WordPress6
- `/var/www/html/mainsite/` - Main site
- `/var/www/html/` - Root site

**Find the database name:**
```bash
# Check wp-config.php for database name
grep "DB_NAME" /var/www/html/wordpress6/wp-config.php
# or
grep "DB_NAME" /var/www/html/mainsite/wp-config.php
```

---

## Step 3: Backup WordPress Files on OLD Server

**On OLD server:**

```bash
# Create backup with today's date
DATE=$(date +%Y%m%d)

# Backup WordPress files (replace 'wordpress6' with actual directory)
tar -czf /backup/applications/wordpress6-${DATE}.tar.gz /var/www/html/wordpress6/

# Or if it's in a different location:
# tar -czf /backup/applications/mainsite-${DATE}.tar.gz /var/www/html/mainsite/
```

---

## Step 4: Backup WordPress Database on OLD Server

**On OLD server:**

```bash
DATE=$(date +%Y%m%d)

# Backup database (replace 'wordpress6' with actual database name)
mysqldump -u root -p wordpress6 > /backup/databases/wordpress6-${DATE}.sql

# Or if database has different name:
# mysqldump -u root -p wordpressdb > /backup/databases/wordpressdb-${DATE}.sql
```

**You'll be asked for MySQL root password.**

---

## Step 5: Copy Files to NEW Server

**On OLD server:**

```bash
DATE=$(date +%Y%m%d)

# Copy WordPress files to new server
rsync -avz --progress /backup/applications/wordpress6-${DATE}.tar.gz root@vps2.scala4.com:/backup/applications/

# Copy database backup
rsync -avz --progress /backup/databases/wordpress6-${DATE}.sql root@vps2.scala4.com:/backup/databases/
```

**You'll be asked for SSH password or use SSH key.**

---

## Step 6: Extract Files on NEW Server

**On NEW server:**

```bash
DATE=$(date +%Y%m%d)

# Create WordPress directory
mkdir -p /var/www/html/wordpress6

# Extract files
cd /backup/applications
tar -xzf wordpress6-${DATE}.tar.gz -C /var/www/html/

# Set permissions
chown -R www-data:www-data /var/www/html/wordpress6
chmod -R 755 /var/www/html/wordpress6
```

---

## Step 7: Create Database on NEW Server

**On NEW server:**

```bash
DATE=$(date +%Y%m%d)

# Login to MySQL
mysql -u root -p

# In MySQL, create database:
CREATE DATABASE wordpress6 CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
EXIT;

# Import database
mysql -u root -p wordpress6 < /backup/databases/wordpress6-${DATE}.sql
```

---

## Step 8: Update WordPress Configuration

**On NEW server:**

```bash
# Edit wp-config.php
nano /var/www/html/wordpress6/wp-config.php
```

**Update these lines:**
```php
define('DB_NAME', 'wordpress6');
define('DB_USER', 'root');  // or create a new user
define('DB_PASSWORD', 'YOUR_MYSQL_PASSWORD');
define('DB_HOST', 'localhost');
```

**Save:** Ctrl+X, then Y, then Enter

---

## Step 9: Create Apache Virtual Host

**On NEW server:**

```bash
# Copy example config
cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/wordpress6.conf

# Edit it
nano /etc/apache2/sites-available/wordpress6.conf
```

**Basic config:**
```apache
<VirtualHost *:80>
    ServerName scala4.com
    ServerAlias www.scala4.com
    DocumentRoot /var/www/html/wordpress6
    
    <Directory /var/www/html/wordpress6>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
    
    ErrorLog ${APACHE_LOG_DIR}/wordpress6-error.log
    CustomLog ${APACHE_LOG_DIR}/wordpress6-access.log combined
</VirtualHost>
```

**Enable site:**
```bash
a2ensite wordpress6.conf
systemctl reload apache2
```

---

## Step 10: Test

**On NEW server:**

```bash
# Check Apache config
apache2ctl configtest

# Check if site is accessible (replace with actual IP)
curl -I http://YOUR_SERVER_IP
```

**In browser:** Visit `http://YOUR_SERVER_IP` or add to `/etc/hosts` for testing.

---

## Summary Checklist

- [ ] Step 1: Created directories on NEW server
- [ ] Step 2: Found which WordPress is scala4.com
- [ ] Step 3: Backed up WordPress files on OLD server
- [ ] Step 4: Backed up WordPress database on OLD server
- [ ] Step 5: Copied files to NEW server
- [ ] Step 6: Extracted files on NEW server
- [ ] Step 7: Created and imported database on NEW server
- [ ] Step 8: Updated wp-config.php
- [ ] Step 9: Created Apache virtual host
- [ ] Step 10: Tested the site

---

**Need help?** Tell me which step you're on and I'll help!



