I wrote up a little script to run when you migrate a wordpress installation from one host to another (hostname change.) Once this script is run you can access the site via the hostname of the server it’s running on and then change the URL to whatever you like. This comes in handy for when you want to migrate one internal host to another, then specify an external hostname once things are looking how you like them.
Change SQL_COMMAND to reflect the name of the wordpress table in the destination server. Thanks to this site for the guidance in writing the script.
#!/bin/bash #A simple script to update the wordpress database to reflect a change in hostname #Run this after changing the hostname / IP of a wordpress server #Prompt for mysql root password read -s -p "Enter mysql root password: " SQL_PASSWORD SQL_COMMAND="mysql -u root -p$SQL_PASSWORD wordpress -e" #Determine what the old URL was and save to variable OLD_URL=$(mysql -u root -p$SQL_PASSWORD wordpress -e 'select option_value from wp_options where option_id = 1;' | grep http) #Get current hostname HOST=$(hostname) #SQL statements to update database to new hostname $SQL_COMMAND "UPDATE wp_options SET option_value = replace(option_value, '$OLD_URL', 'http://$HOST') WHERE option_name = 'home' OR option_name = 'siteurl';" $SQL_COMMAND "UPDATE wp_posts SET guid = replace(guid, '$OLD_URL','http://$HOST');" $SQL_COMMAND "UPDATE wp_posts SET post_content = replace(post_content, '$OLD_URL', 'http://$HOST');" $SQL_COMMAND "UPDATE wp_postmeta SET meta_value = replace(meta_value,'$OLD_URL','http://$HOST');"