# In cPanel, create full backup# Download backup files via:# - Backup Wizard# - File Manager# - FTP/SFTP
2. Transfer Files
# From old server to newrsync -avz -e ssh user@old-server:/home/username/public_html/ \ /var/www/example.com/htdocs/# Or use SCPscp -r user@old-server:/home/username/public_html/* \ /var/www/example.com/htdocs/# Set correct permissionssudo chown -R www-data:www-data /var/www/example.com/sudo find /var/www/example.com/htdocs/ -type d -exec chmod 755 {} \;sudo find /var/www/example.com/htdocs/ -type f -exec chmod 644 {} \;
3. Export Databases
# On old server (via phpMyAdmin or command line)mysqldump -u username -p database_name > database_backup.sql# Transfer to new serverscp database_backup.sql user@new-server:/tmp/
4. Import to Webinoly
# Import databasesudo db -import=database_name,/tmp/database_backup.sql# Update WordPress wp-config.php if neededsudo nano /var/www/example.com/wp-config.php
5. Update DNS
# After testing, update DNS records# Point A record to new server IP# Wait for propagation (24-48 hours)
Keep your old server running until DNS propagation completes and you’ve verified everything works correctly.
# Create custom config for sitesudo nano /etc/nginx/apps.d/example.com-custom.conf# Add converted rules# Example:location /old-path { return 301 /new-path;}# Include in site config is automatic# Test configurationsudo nginx -t# Reload NGINXsudo service nginx reload
# Export from oldsudo mysqldump -u root -p database_name > db_backup.sql# Import to Webinolysudo mysql -u root -p < db_backup.sql# Or use Webinoly commandsudo db -import=database_name,db_backup.sql
# On old serversudo backup -all# This creates:# - All site files# - All databases# - All configurations
2. Transfer Backups
# Direct transfersudo rsync -avz -e ssh /var/webinoly/backups/ \ user@new-server:/tmp/backups/# Or compress and transfersudo tar -czf webinoly-full-backup.tar.gz /var/webinoly/backups/scp webinoly-full-backup.tar.gz user@new-server:/tmp/
3. Prepare New Server
# On new server# Install Webinoly with same componentswget -qO weby qrok.es/wy && sudo bash weby# Install same PHP versionssudo stack -php=8.4sudo stack -php=8.2# Install same optional componentssudo stack -redis
4. Restore All Sites
# On new serversudo restore -all# Or restore individual sitessudo restore example.comsudo restore site2.com
5. Verify and Update DNS
# Test sites workcurl -H "Host: example.com" http://localhost# Update DNS records# Point domains to new server IP
# Old serversudo backup example.com# Backup includes:# - Site files# - Database# - NGINX configuration# - SSL certificates
Transfer and Restore
# Transferscp /var/webinoly/backups/example.com-*.tar.gz \ user@new-server:/tmp/# New server - restoresudo site example.com -wp # Create site structure firstsudo restore example.com -backup=/tmp/example.com-*.tar.gz
# Using WordPress plugins (on old server)# - UpdraftPlus# - All-in-One WP Migration# - Duplicator# Or command linesudo wp db export backup.sql --path=/var/www/htmltar -czf wordpress-files.tar.gz /var/www/html/
2. Create Site on Webinoly
# New serversudo site example.com -wp
3. Transfer and Restore
# Transfer filesscp wordpress-files.tar.gz backup.sql user@new-server:/tmp/# New server - extractcd /var/www/example.com/htdocs/sudo tar -xzf /tmp/wordpress-files.tar.gz --strip-components=1# Import databasesudo db -import=wordpress_db,/tmp/backup.sql# Update wp-config.phpsudo nano wp-config.php
4. Update URLs
# If domain stays same, no changes needed# If domain changessudo wp search-replace 'old-domain.com' 'new-domain.com' \ --path=/var/www/example.com/htdocs/# Or use SQLsudo mysql -u admin -p wordpress_dbUPDATE wp_options SET option_value = REPLACE(option_value, 'http://old-domain.com', 'http://new-domain.com');
# Export from MySQLmysqldump -u root -p --compatible=mariadb database_name > db.sql# Transfer and import to MariaDBsudo mariadb -u root -p database_name < db.sql# Or use Webinolysudo db -import=database_name,db.sql
# Old server - backup certificatessudo tar -czf letsencrypt-backup.tar.gz /etc/letsencrypt/# Transferscp letsencrypt-backup.tar.gz user@new-server:/tmp/# New server - restoresudo tar -xzf /tmp/letsencrypt-backup.tar.gz -C /# Renew to ensure they worksudo certbot renew
Fresh Certificates
# Let Webinoly generate new certificatessudo site example.com -ssl=on# Automatic and recommended approach