Changing site formats... question


So I've decided to change the format of one of my sites from a forum to a CMS. The forum is rarely used anymore and the site is overall not SEO friendly.

The new site is going to be built using WordPress.

What I'd like to do is build the site on a new account on my server here, and when complete and ready to go live, change whatever settings I need to change so that when visitors go to the domain they see the new site.

I'm looking for recommendations on how make this go smoothly.

How should I create a new account? Purchase a new/test domain name to build it on, and then change the settings when I'm ready to go live?
That is exactly what I've done in the past. Surprisingly WP doesn't have an easy built in way to create a beta site, then a "go live" option. Seems like an obvious feature doesn't it? I use to just create a "beta" folder in the current site but then once you're ready to go live you have to move things manually and update the database and if you're using a template things can get messy and it's even broken WP on me trying things that way. By creating a test account/domain once you're ready to go live you can just delete your old account and add the domain as a parked domain in your new/test account to point everything to your new WP site. It's quick, easy, and there shouldn't be any issues.
Yeah, I think that's what I'm going to do. Purchase a new domain, create a new account, build the site via WP and keep it hidden until it's ready, then change the settings.
You can use a subdomain of an existing domain, even if it's hosted somewhere else. You just need to open up the DNS manager for that domain and add a subdomain with A record pointing to your KnownHost IP number. Then in WHM at KH, add it as a new account. I use DirectAdmin but I've done it with WHM at other places many times. When you are ready to go live, change the domain name for the account in WHM and then in cPanel make the old domain an Add-on.

The real hangup when you go live is searching the database and replacing old domain with new domain everywhere. All your posts with images will have the full 'src="http....' because that's how WP does it. And some fields are serialized, which means it's not a simple text search/replace. The standalone script mentioned here: is probably the way to go, "Search and Replace for WordPress Databases Script". The advice about only modding the wp_posts table is wrong, you need to fix it everywhere, so widgets, plugins, etc, will all be right.

Sometimes the old domain will be in theme. Look at css and php files. That's it though, database and theme. Once I have seen a cr*ppy plugin that wrote a config file in its own directory, but that's pretty unusual, they almost always use the db. It was a real edge case. The plugin could not update its little config file because the old host was Windows and had backslashes in the file path!

The single most handy thing are these two lines you can put at the top of wp-config.php until you have it all sorted out:

define('WP_HOME', '');
define('WP_SITEURL', WP_HOME);

No trailing slash.

If you want to keep Google away until the links are right, use Dashboard / Reading / Discourage Search Engines until it's ready. Or better yet, password protect the whole public_html.

Always use a security plugin, at the least Limit Login Attempts. Never use "admin" as the admin user name. You should see the logs!