Select Page
I run this blog on WordPress, but I’m always interested in WP alternatives, and one of the biggest right now seems to be Craft CMS.

This post is not about debating Craft CMS vs. WordPress though – I just wanted to document the process of installing it on a Digital Ocean VPS (err, “Droplet”), because it’s something I tried and gave up on a few months ago.

I don’t remember the exact details, but the first time I tried to install it, I got to some stage where I was getting a pretty inscrutable error, and couldn’t find any way to get it running. I was only installing it for fun, so I didn’t really care too much, but I recently wanted to try it for something else, so I gave it another go, with mixed results.

Installing it was not really that simple, and it took me a while, but I got it going. I don’t know how often they update the Craft CMS docs, but I ran into some trouble, and a few of the issues took a fair amount of time to fix – and I’m very comfortable with installing anything on a LAMP server.

Again, I’m not trying to do compare it to WordPress, but I do think that a very large reason that WP has become such a behemoth is because they worked incredibly hard on making the installation process quick and easy. Even if you happen to run into an error, I’m pretty sure there are good instructions on how to fix it, and I don’t think Craft is there yet. But luckily, if you just follow this procedure step-by-step, you should probably not have to worry about that – unless Digital Ocean change something, or Craft does.

So let’s jump to it. If something becomes outdated, please comment here. I am not the fastest at replying to comments, so if you have a question about this specific installation guide (I am not a Craft CMS expert, or even a real user yet), feel free to tweet @bn2b about it.

This guide is specifically about installing on a Digital Ocean Droplet (VPS). I would imagine that it should work on any Ubuntu server with a LAMP stack going, but your mileage may vary.

Steps:

1. You need a Digital Ocean account. If you don’t have one, sign up here. (It’s an affiliate link but I’m not shilling – Digital Ocean are great and I wrote a few articles featuring them before even realizing they had an affiliate program.)

2. Now you’re going to create a droplet. Inside your Digital Ocean dashboard, go to the Droplets page, and then click the big green Create button and click “Droplets

I can’t link these directly because D.O. seems to create links with unique strings in the URL, and I have a feeling the ones I get won’t work for you, so here’s a screenshot:

3. You should now be at a page titled “Create Droplets“. You want to click the “One-click apps” tab, and then “LAMP on 16.04” (it could be that by the time you read this, it’s a different version number, but it should probably be fine). Again, D.O. create links with unique IDs so I’m going to add a screenshot instead of links:

 

4. At this point, you’ll have the choice of sizes/prices, and a few other options you can choose yourself. I leave all this as default myself, and I’m sure the cheapest plan should be fine. There’s an option here to add an SSH key you want.

5. At this point, you’re going to get your login information. Digital Ocean will email you a temporary password – I’m not sure if they do this if you specified an SSH key in the last step. Use this info to log into your server using SSH (I feel like explaining this process strays too far from the point of this tutorial), and set up a new password.

6. So now you’re logged into your server. I’m going to give you a bunch of commands to paste in here without much explanation. My theory is that you don’t understand what these commands are doing (which is fine), you probably don’t care anyway.

cd /var/www/
apt install unzip
wget https://craftcms.com/latest-v3.zip
unzip latest-v3.zip
mv html/ /tmp/
mv latest-v3.zip /tmp/

7. Now you need to do a very quick and easy edit an Apache config file on the server. I’m going to assume you’re happy to use Pico (the best editor). Just in case you’re not used to it, remember Ctrl-O is Save and when you’re done editing, Ctrl-X will Exit the program. So run this command:

pico -w /etc/apache2/sites-enabled/000-default.conf

Once the file is open, you’ll see about 18 lines of text. Two of these lines contain the string /var/www/html and all you need to do is change it to /var/www/web in both spots, save the file (Ctrl-O) and exit (Ctrl-X).

8. Okay, back to sticking commands into the server. Some of these are interactive, so if you paste the whole block at once, I don’t think it’ll work – go line by line.

apt-get update
apt-get upgrade
sudo apt-get install php-mbstring
sudo apt-get install php-mcrypt
sudo apt-get install php-imagick
sudo apt-get install php-curl
sudo apt-get install php-xml
sudo apt-get install php-zip

sudo a2enmod rewrite
service apache2 restart

chown -R www-data:www-data /var/www/

9. You now have to edit the config/general.php file and set a securityKey in it. Open the file using the command below:

pico -w ./config/general.php

and set some random string in the spot shown below. This is what it’d look like if you changed it to blahblahblah-somerandomstringeogihoeihfioh3249863982:

 'securityKey' => 'blahblahblah-somerandomstringeogihoeihfioh3249863982',

10. Now you’re going to want to check what your default MySQL password is and change it. The commands below will show you your password, and then let you change it, as well as disabling remote login (recommended):

cat /root/.digitalocean_password
mysql_secure_installation

11. Now you’re going to use your new password to log into MySQL and create a database for your Craft CMS blog:

mysql -uroot -p
mysql> create database craftblog;
mysql> \q

12. Now, edit the config/db.php file to include the new info you’ve set up. You’ll have to change the username, host, password and database name here:

pico -w /var/www/config/db.php

13. Almost done! Now you can visit your installation in your browser and it’ll ask you a few things and let you log in! You just need to go to http://xxx.xxx.xxx.xx/admin in your browser (with the xxx.xxx.xx.xx being the IP of your Digital Ocean droplet).

Okay, you’re ready to use Craft CMS now! This article wasn’t really written to help you past this point, I just wanted to document the steps I took to get it set up successfully. If there’s any interest in this article, I’d be happy to compare it to WordPress at some point, and give a general overview/review of it. Let me know in the comments I guess!

Also let me know if there are any errors in this – I tested this again as I wrote this post, but there’s always the chance that something changes and this document needs to be updated accordingly.

Welcome to My Blog

Here is a masonry blog layout with no sidebar

More About Reality Simulation Theory

I think I wrote about Simulation Theory a while ago on here (oh yeah here it is, I forget what I said). Basically, it's the idea that maybe our whole world is a simulation,and it's been getting so much press for the last year or two. One thing I love about it is just...

What Eggs Like

Sometimes I remember I should be posting and I feel bad, but then I think about all the really terrible posts I don't tweet, and I feel better, responsible even. That's me, a good, responsible blogger, not posting a bunch of crap just to put in hours. Now however,...

New posts coming – I’m in a new business

I'm starting a new business, it's not totally internet. I'll be doing posts about it really soon. Maybe endless posts, I don't know - everyone always thinks they'll do that, but then they don't, but I do envision lots of posts. I'm gonna close that Patreon if I can...

The Most Expensive Mistakes When Starting a Blog

Sorry, this title is probably misleading or sounds clickbaity. I'm not trying to do a clickbait - I'm actually trying to save all my clickbait karma for when I need it. My plan is that this blog is going to be thousands of posts about uhh.. whatever the point of this...

US/Canada Import Place

I just remembered a sort of weird thing. For those who don't know, I'm in Canada. You can order almost any American item, and find most of them in stores too, but now and then you run into a brick wall. For various reasons (some dumb, some logical), you just can't get...

Patreon Update

So my Patreon campaign is going about about how I expected, not incredible, but it's early days. The way I figure it, if you're going to make it to 1 million patrons/month, you have to start at the very bottom. I was thinking of a few ideas to pump up the campaign,...

How I Back up My Personal Files

A friend of mine sent me a question about backing up personal files. She said this: What is the best way to buy long-term cloud storage that is private, secure, resistant to destruction? Archival storage for personal files... maybe 1TB total, more if it's affordable I...

What Actually Is Machine Learning?

Now that I've posted two things about going to the ML conference, I've had two people I know ask me about machine learning. For all the attention and press that the field has received, it seems that a lot of people still just don't quite understand what it is. I...

Steve Jobs

I just want to post something quickly. I've been working on some stuff for this blog, and I should have new content quite soon, but in the meantime, I want to talk about Steve Jobs. I don't think any blogger has ever done that. A lot of people know about Steve Jobs,...

Driving Confrontations

This is off subject, but I just wrote the title for this post, Driving Confrontations, and is it just me or does it sound like it could be the name of a prog-rock album? I'm picturing an album cover now with three cars that have been outfitted with space shuttle...

Instagram Spam-following Experiment

I've only mentioned this to a few people, but I've been doing an Instagram experiment for about a month. It involves my normal account, as well as a new fake account I created. I didn't come up with any really amazing insights or discoveries, and I wasn't sure what to...

I Have a Better Idea than Curing Death

So many scientists and dotcom billionaires are working on curing death. The idea is that death by old age is a terrible bug in humanity, and something that should be fixed immediately. Preferably before these guys die. I understand this. I know personally when I think...

Deer Family

I went to a conservation area two days ago, just for a walk, and I only took my new film camera (from this post). I've been to this area before, and it's kind of cool, but I didn't think it was that amazing. After walking around for about 45 minutes, I came around a...

Nikon F4

After writing the post about the designer Giorgetto Giugiaro, I did end up getting one of the cameras in the post. I did a bit of wheeling and dealing on Kijiji (which has killed Craigslist in Canada), and got a Nikon F4S from a nice guy who used to do wedding...

Human Consciousness

I've always wanted to figure out the whole deal with human consciousness, so, a while ago, I got a book about it. In the past week, I finally got around to reading it, and guess what: The author doesn't know what human consciousness is. I don't want to get too angry...