You can use the WP CLI too to rename your site's hostname safely and effectively. There's a chance that your layout is being messed up because naively replacing the domain name with a simple string replace, e.g. perl -pi -e 's/oldhost/newhost/g' backup.sql
, will not take into account things like serialized data.
Try this on your local machine after install WP-CLI:
Using the db-checkpoint
package:
wp package install binarygary/db-checkpoint
wp dbsnap pre-search-replace
wp search-replace --precise oldhost newhost
wp dbsnap post-search-replace
wp dbsnapback pre-search-replace
Now, take the file in wp-content/uploads/checkpoint-storage
that starts with post-search-replace
and import that to your remote host.
Without db-checkpoint
:
# Backup your database here, this will be restored to your local once the
# operation is done
wp search-replace --precise oldhost newhost
# Take another backup now - this backup will go to your remote server
# Now, restore your original backup to have your local in a working state...
# OR do this:
wp search-replace --precise newhost oldhost