Docs / Migration Guides / Migrating WordPress Between Hosting Providers

Migrating WordPress Between Hosting Providers

By Admin · Feb 5, 2026 · Updated Apr 23, 2026 · 5 views · 3 min read

This guide covers how to set up and configure wordpress on a Linux VPS. Whether you're running a production environment or a development setup, these instructions will help you get started quickly and securely.

Prerequisites

  • Basic familiarity with the Linux command line
  • Sufficient storage on the destination server
  • A VPS running Ubuntu 22.04 or later (2GB+ RAM recommended)

Pre-Migration Assessment

After applying these changes, monitor the server's resource usage for at least 24 hours to ensure stability. Tools like htop, iostat, and vmstat can provide real-time insights into system performance.


# Pre-migration data sync with rsync
rsync -avzP --delete \
  --exclude='/dev' --exclude='/proc' --exclude='/sys' --exclude='/tmp' \
  -e 'ssh -p 22' \
  root@old-server:/ /mnt/migration/

# Final sync with minimal downtime
rsync -avzP --delete \
  -e 'ssh -p 22' \
  root@old-server:/var/www/ /var/www/

The configuration above sets the recommended values for a VPS with 2-4GB of RAM. Adjust the memory-related settings proportionally if your server has different specifications.

Data Transfer Process

The wordpress configuration requires careful attention to resource limits and security settings. On a VPS with limited resources, it's important to tune these parameters according to your available RAM and CPU cores.


# Database migration
# On source server:
mysqldump --single-transaction --routines --triggers --all-databases | gzip > db_backup.sql.gz

# Transfer to destination:
scp db_backup.sql.gz root@new-server:/tmp/

# On destination server:
gunzip < /tmp/db_backup.sql.gz | mysql -u root

Note that file paths may vary depending on your Linux distribution. The examples here are for Debian/Ubuntu; adjust paths accordingly for RHEL/CentOS-based systems.

Configuration Migration

The wordpress configuration requires careful attention to resource limits and security settings. On a VPS with limited resources, it's important to tune these parameters according to your available RAM and CPU cores.


# Pre-migration data sync with rsync
rsync -avzP --delete \
  --exclude='/dev' --exclude='/proc' --exclude='/sys' --exclude='/tmp' \
  -e 'ssh -p 22' \
  root@old-server:/ /mnt/migration/

# Final sync with minimal downtime
rsync -avzP --delete \
  -e 'ssh -p 22' \
  root@old-server:/var/www/ /var/www/

Note that file paths may vary depending on your Linux distribution. The examples here are for Debian/Ubuntu; adjust paths accordingly for RHEL/CentOS-based systems.

DNS Cutover Procedure

Security should be a primary consideration when configuring wordpress. Always use strong passwords, keep software updated, and restrict network access to only the necessary ports and IP addresses.


# Database migration
# On source server:
mysqldump --single-transaction --routines --triggers --all-databases | gzip > db_backup.sql.gz

# Transfer to destination:
scp db_backup.sql.gz root@new-server:/tmp/

# On destination server:
gunzip < /tmp/db_backup.sql.gz | mysql -u root

This configuration provides a good balance between performance and resource usage. For high-traffic scenarios, you may need to increase the limits further.

Common Issues and Solutions

  • Permission denied errors: Ensure files and directories have the correct ownership. Use chown -R to fix ownership and chmod for permissions.
  • Connection timeout: Verify your firewall rules allow traffic on the required ports. Use ss -tlnp to confirm the service is listening on the expected port.
  • Slow performance: Check for disk I/O bottlenecks with iostat -x 1 and network issues with mtr. Review application logs for slow queries or requests.

Conclusion

This guide covered the essential steps for working with wordpress on a VPS environment. For more advanced configurations, refer to the official documentation. Don't hesitate to reach out to our support team if you need help with your specific setup.

Was this article helpful?