Setting Up Self-Hosted WordPress (Finally Wrote This Down)

Setting Up Self-Hosted WordPress (Finally Wrote This Down)

Tutorials self-hosting tutorial web hosting wordpress

So a few people have emailed me asking how this blog is actually built, since I mentioned back in October that I was moving off Blogger. Short answer: it's WordPress, self-hosted, running on a $6.95/month shared hosting plan. Long answer is basically this whole post.

I put this off for almost a year because I assumed it'd be a pain. It wasn't, mostly. But there were a couple of dumb snags that cost me an evening, so here's the actual process, not the marketing-page version.

WordPress.com vs. self-hosted

If you just want to write and don't care about plugins, custom themes, or ads showing up on your posts, WordPress.com is fine. Free, hosted, done. But you don't get FTP access, you can't install arbitrary plugins, and if you ever want to run ads or sell something off your site, you're stuck. I wanted control, so self-hosted it was. That means you need your own hosting and your own domain, and you're the one responsible when something breaks at 2am.

Picking a host

I went with Bluehost, mostly because three different people recommended it and it was cheap. $6.95 a month if you pay for a year up front, which stings a little all at once but works out to less than a couple of coffees. They throw in a free domain for the first year too.

A couple of things actually matter when picking a host for WordPress specifically:

  • cPanel access. Almost every cheap host uses cPanel these days, and it makes life a lot easier for managing databases and email.
  • One-click installers. Look for Fantastico or Softaculous in cPanel. This is the difference between a five-minute setup and manually creating a MySQL database, editing wp-config.php by hand, and uploading a few hundred files over FTP.
  • PHP 5.2 or newer, MySQL 5.0 or newer. Any halfway modern host clears this bar without you having to ask, but check anyway.

I will say the upsell screens during signup were relentless. Every single page tried to sell me SiteLock, or a dedicated IP, or "premium" something. I clicked through about six "no thanks" buttons before I actually got to my cart. Not a dealbreaker, just mildly annoying, like being followed around a car dealership.

Installing it

If your host has Softaculous or Fantastico, use it. Log into cPanel, find the WordPress icon, pick your domain, set an admin username that isn't "admin" (seriously, don't use "admin," it's the first thing every brute-force script tries), and hit install. Took me about four minutes including the time it took me to find the right icon.

Doing it manually isn't hard either if your host doesn't have an installer. Download the WordPress zip from wordpress.org, unzip it, upload the contents to your domain's folder over FTP (I use FileZilla, it's free and it's never once let me down), create a MySQL database and user in cPanel, then point your browser at your domain and follow the five-minute famous install screen. It genuinely is about five minutes if your database details are right. Mine weren't, the first time, because I typo'd the database name, and WordPress just gives you a fairly unhelpful white screen when that happens. Double-check that field.

First theme

Whatever theme comes installed by default (Twenty Eleven, if you're on a recent WordPress version) is perfectly fine to start with honestly. It's clean, it's responsive-ish, and it doesn't do anything weird. But everyone wants to pick their own, so head to Appearance > Themes > Install Themes and search the free directory. I ended up on a theme called Suffusion, which is enormous and has about four hundred options panels, more than I'll ever touch, but it looks decent out of the box and it's actively maintained.

One thing I'd tell past-me: don't install ten themes to "compare" them. Just install two or three you actually like the screenshot of, activate each for a minute, then delete the ones you're not using. Deactivated themes just sit there as extra attack surface and extra stuff cluttering your dashboard.

Next post I'll probably go over which plugins I ended up keeping, since I installed about fifteen the first week and I'm now down to six. Akismet is non-negotiable, by the way. Comment spam starts within hours of your site going live, I'm not exaggerating.