Adventures in Server Migration

Not the actual servers – this is a stock photo.

I recently finished moving this website to a new server. I didn’t change the server provider or anything like that, but I wanted to take advantage of some new stuff. Here’s why I did it, and some of the difficulties I encountered.

Why did I do a server migration?

I wanted to upgrade to Ubuntu 18.04 to take advantage of newer PHP and nginx versions. I could have attempted to upgrade from 16.04 to 18.04 in place, but there were a lot of changes between those LTS versions, including how networking is handled. It seemed like the risk was just a little too high. I opted instead to build the system out on a new server, and then move all the website data to the new server. This had a few additional advantages as well:

  • I could switch from MySQL to MariaDB, a community developed version of MySQL that has gained support from several major tech companies. It also supposedly runs faster in some situations.
  • I could simplify my nginx configuration files. For each of my sites, my nginx configuration files are almost identical. Pretty much the only different parts are the server_name, paths to the ssl_certificate and ssl-certificate_key and the root for the website’s files. In building out a new server, I could move almost all of the configuration into snippets, making it easy to make changes to all of the sites at once. This will be useful in the future when some things change (like a newer PHP version).
  • I could entirely remove the andy-bell.com files. For a while I’ve been redirecting andy-bell.com to andybell.xyz, but I was doing so using a WordPress redirection plugin. Since andybell.xyz was literally just cloned from a backup of andy-bell.com, everything’s the same except new stuff. I took the opportunity to just nuke the old files and do the redirect from andy-bell.com to andybell.xyz solely in nginx. This also saved some time, since I wouldn’t need to move the files or database for andy-bell.com.
  • I use acme.sh for my SSL certificates. I was able to slightly improve things as I re-provisioned all the certs on the new server. (I just issued new certs on the new server so I wouldn’t have to move all the old ones over, plus now they will all renew on the same day, which will help me keep track of it better.)

Moving to the new server

It turned out to not be too difficult. Once I got the new server set up with nginx, PHP, and MariaDB, it wasn’t very hard to move all the old files over (I zipped them up on the old server, moved them straight from one server to the other, then unzipped them). Moving the databases wasn’t much harder. The only issue I had with the databases was one particularly large database that I had trouble with due to the file size. It was actually surprisingly smooth. To help ensure the move from one server to another moved quickly, as soon as I knew I wanted to move servers I changed the TTL (Time to Live) on my DNS settings to 5 minutes, so that it wouldn’t take too long for the DNS changes to propagate. Then 48 hours after I completed the move I turned the TTL back to the default setting!

I’m pretty pleased with the server performance, and I’m happy to be running on the latest Ubuntu LTS release. This should help keep things moving quickly and smoothly for years to come!

Summary of the new and old servers

Old Server New Server
Provider Vultr (Seattle) Vultr (Seattle)
OS Ubuntu 16.04 Ubuntu 18.04
Web Server nginx 1.10.3 nginx 1.14.0
PHP PHP 7.0.30 PHP 7.2
Database MySQL MariaDB

(Note: those Vultr links are affiliate links, because I really do like Vultr. If you use either of those links, and are active on Vultr for 30+ days with more than $10 in payments, then I’ll get a $10 credit, which is enough for 2 months of hosting for this site, not including tax.)

Relaunch!

And my site is relaunched!

This is actually pretty exciting! I’ve done a lot of work to make my website about 50x better (*not a guarantee)! First thing I did is consolidate my web presence. I have a lot of web apps that I just don’t use anymore, so I kicked them out. They’ve been sent to the great recycle bin in the sky (or, if you’re a mac user, they were sent to the great trash can in the sky).

I’ve also had several different WordPress sites accumulate over the years. I had a portfolio site, a blog, and a photoblog I created for a class. I also have an assignment “portfolio” (not really a portfolio, but whatever) and I created a couple of blogs for documenting my NaNoWriMo writings.

No more. I’ve consolidated things in. I’ve combined the portfolio site, blog, and photoblog into this one WordPress site you’re looking at now. I’ll also be moving my NaNoWriMo journal entries into the blog portion of this site too. (The writings will be backed up onto a private WordPress installation.) Basically, everything’s in one place now.

I’ve also done a complete redesign. I’ve moved over to one of the most popular WordPress themes, Responsive, and created my own custom-made child theme for this site. The layout hasn’t changed (I was pretty happy with the clean layout), but I did change most of the colors. It’s pretty sweet.

So how did I do it? I created the new theme last semester for a class, using the mad CSS skills I learned in another class last semester. As far as combining WordPress sites is concerned, it only took a few hours of time. WordPress’s import/export feature is really, really good, and made it super easy to get everything under one virtual roof. I still have some work to do: particularly redirecting the old sites to this new one. Some of the URL schemes have changed, so it’s not going to be super easy. I’m going to have to do some 301¬†Permanent¬†Redirects on my old sites. That’s going to be fun. Fortunately, I’ve got an idea of how to make it at least a little quicker.

Enjoy the new site!

I Don’t Have a Good Title For This

So I’ll be honest. I’ve never been very good at this whole “blogging” thing. I’m not really consistent with tweeting either. Or posting to Facebook. And I’m even worse about Google+. But I’m trying to change that a little bit. And I’m doing that a couple of ways.

  1. I’m actually planning on posting “regularly.” I used to think that blogging meant posting something daily. But it doesn’t have to be that way. Instead, I’m planning on posting about once a week. Maybe I’ll even post twice in a week if there’s actually a lot to talk about.
  2. Posts don’t have to be really long. But things I post generally are going to be over 500 words. I want to do some meaty writing. Though it’ll mostly be fluff.
  3. I don’t really care about how many people read or whatever. I’m OK with that.
  4. I’ll help myself keep to my goal by stockpiling some content. In fact, by the end of this week I should have about a month’s worth of content written, so it’ll be hard for me to fall behind. How’s that for planning?

Mostly, I want to be able to get my thoughts out there. Even if nobody reads them, I’m OK with that. I just want to write. And I’ll do it by using the experiences I have. Maybe I’ll write about things I’ve learned in classes! Maybe I’ll share some lessons I’ve learned from video shoots! Who knows!

Either way it should be good for me. Even if it’s like pulling teeth to write sometimes.

Twitter

So I’m working on a paper about Twitter and Advertising for school, and it turns out that it is really kinda hard to describe exactly what Twitter is to people who’ve never used it. So I’m working on a primer about Twitter. This will be the background section of my paper, and I’m also planning on writing an extended (and illustrated) edition for the website here. I just hope I can boil Twitter down to its most essential elements in about 2 pages of written paper. Good luck to me.

Coming Soon…

Well, this coming week is finals week, and so after that I should have time to begin working on the blog. I’m hoping to have some great things lined up, including what could be an exclusive first look at a brand new documentary tentatively called “Tarnished Pearl: Voices from Uganda.” I may have a world exclusive here, so look for that coming up. (What a great way to start a blog, huh?)

Other than that, things will be ordinary. I won’t try to report on things, instead I’ll offer commentary on things I read online, while being sure to link back to them. I love some of the largest blogs on the internet, like Lifehacker and Engadget, so I’ll offer my long-form two cents here.

Update: The only other media coverage, period (determined by first page Google results), on that documentary is about the world premiere showing on the Rexburg Standard Journal’s website here. My post will be an in-depth review/overview of the documentary before it hits the film festivals.