24 July 2022

Install Docker CE on Amazon Linux 2

Here is how to install docker and docker-compose on the (AWS) Amazon Linux 2 OS running on either an EC2 or Lightsail instance.

Let’s begin by opening a console or SSH session to your EC2 or Lightsail instance. You can do this from within your AWS portal or an SSH tool like Putty. The actual “how to connect” to your server is outside the scope of this article.

Once you are connected, let us start by installing any pending updates on your host.

sudo yum update

Next, we will install Docker.

sudo yum install docker

Create a new membership group for docker and add the ec2-user to it so you can run all of the docker commands without needing to use the sudo command.

sudo usermod -a -G docker ec2-user
id ec2-user
newgrp docker

Now it’s time to add docker-compose.

wget https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m) 
sudo mv docker-compose-$(uname -s)-$(uname -m) /usr/local/bin/docker-compose
sudo chmod -v +x /usr/local/bin/docker-compose

Enable the docker service.

sudo systemctl enable docker.service

Start the docker service.

sudo systemctl start docker.service

Verify that the service is running.

sudo systemctl status docker.service

You can check the docker version with this command.

docker version

And lastly you can check the docker-compose version with this command..

docker-compose version

You have now installed docker and docker-compose on Amazon Linux 2.
I am going to leave off with some helpful controls manage docker on your machine.

sudo systemctl start docker.service #start docker
sudo systemctl stop docker.service #stop docker
sudo systemctl restart docker.service #restart docker
sudo systemctl status docker.service #get the status of docker
13 November 2021

Adding a wildcard SSL certificate to your WordPress site

So this one threw me for a little bit of a loop when I was first trying to figure it out, even though it shouldn’t have. I was just overthinking it. There was plenty of documentation out there for adding a certificate to a single site, but there is not much when it comes to adding a wildcard certificate to a multi-site WordPress install. I guess that was where I had gotten confused. For reference, this was the specific KB article that helped me the most.

For folks that don’t know what I’m talking about, a multi-site install is one where you can host different WordPress sites on the same server. Meaning that site1.<yoursite>.com and site2 .<yoursite>.com could both reside on the same server even if they are about completely different content. Thus you would only have to cover the cost to host one server, instead of paying for two, one for each host. Yes, they do share some resources, so there are some possible drawbacks… But for most personal sites it should not really be an issue for a few sites to share the same host.

You will need OpenSSL installed on your machine before we continue. It’ll likely already be installed if you are using LInux. If it’s not installed please use your OS’s package manager to install it.

Generate a new private key:

sudo openssl genrsa -out /opt/bitnami/apache2/conf/server.key 2048

Use that key to create a certificate:
***IMPORTANT: Enter the server domain name when the below command asks for the “Common Name”.***

sudo openssl req -new -key /opt/bitnami/apache2/conf/server.key -out /opt/bitnami/apache2/conf/cert.csr

Send the cert.csr file to your Certificate Authority (CA). After they complete their validation checks, they will issue you your new certificate.

Download your certificates. You should have received two files, one was your new certificate and the other file is the CA’s certificate. Rename them as follows:

  • STAR_YourSite_com.crt –> server.crt
  • STAR_YourSite_com.ca-bundle –> server-ca.crt

Backup your private key after generating a password-protected version in the pem format.

sudo openssl rsa -des3 -in /opt/bitnami/apache2/conf/server.key -out privkey.pem

Note: To regenerate the key and remove the password protection, you can use this command:

sudo openssl rsa -in privkey.pem -out /opt/bitnami/apache2/conf/server.key

We’re almost done. Next you’ll open the Apache configuration file to verify it’s setup to use the certificates you just uploaded. The config file can be found at: /opt/bitnami/apache2/conf/bitnami/

Scroll down until you find “<VirtualHost _default_:443>” and verify that it is pointing to the correct certificate, key, and CA certificate bundle that you uploaded earlier. You should find the below lines, if you don’t, go ahead and add them.

SSLCertificateFile "/opt/bitnami/apache2/conf/server.crt"
SSLCertificateKeyFile "/opt/bitnami/apache2/conf/server.key"
SSLCACertificateFile "/opt/bitnami/apache2/conf/server-ca.crt"

Note: It’s easiest to use these default names and not a custom name for these files. If you use a custom name you might need to update that name in other spots of the Apache config file, and you’ll have to google that on your own. If your cert/key is using another name, I recommend just renaming them to the default names above that Apache uses.

After we have copied our files over and have verified that the Apache config file is correct, we are going to update the file persmissions on our certificate files. We will make them readable by the root user only with the following commands:

sudo chown root:root /opt/bitnami/apache2/conf/server*
sudo chmod 600 /opt/bitnami/apache2/conf/server*

Open port 443 in the server firewall. If you’re using Bitnami you can reference this KB.

Restart your server.

Once it comes up, you should now be able to connect to your site using HTTPS.


  • If you are looking for where to purchase an SSL certificate, check out SSLs.com. I use them for my projects. I’ve shopped around, and they have the best deals that I have found anywhere on the Internet.
25 March 2020

Bitnami – Set timezone

Having the correct timezone configured on your machine can save you a lot of “math headaches” when you try to comb through the machine’s event logs. It’s a pretty easy thing to configure in the overall scope of all things, yet it is one that is often over looked, even by veteran users. Never fear though… I will show you how you too can update your Bitnami instance to your preferred timezone.

Lets begin by logging in with ‘root’ priviledges to your Bitnami instance.
Once logged in, use the following command to see what timezone you are currently set to use.

date

As you can see in my example, I am currently set to the UTC timezone, also known as Universal Time.

To find our desired timezone and reconfigure this, we need to enter the following command.

sudo dpkg-reconfigure tzdata

Once you’ve entered the command above and hit ‘Enter’ it will launch a menu were we can find and select your desired timezone. I will changing my Bitnami instance to use the ‘Pacific\Honolulu’ timezone, also known as HST.

Once you click ‘OK’, the machine will show you that it has updated it’s clock to use your desired timezone.

You can further verify that your clock is set correctly by running the ‘date’ command again, just as we had at the beginning of this post.

date

Just like that, we have updated the timezone preference in Bitnami. It was simple to do just as i promised. No more “math headaches” for us when we read log timestamps!!!

NOTE: If you are just trying to update your timezone for WordPress that is running on Bitnami, then check out this post of mine: WordPress – Set Timezone

Category: AWS, Bitnami | LEAVE A COMMENT
4 October 2019

Easy Beginnings – website hosting

The Internet has come a long ways since it’s early beginnings. One of the things that have gone from “only a nerd could accomplish” to now “almost anyone” can do is pick a host and create their own content.

Ages ago I started using a hosting company called DreamHost.com (referral link, save $50). They are a great hosting company, and I still use them for some stuff. If you’re much of a ‘techie’ person, then they would definitely a great choice for you to use. They have a lot of affordable hosting options, and make things really simple with “one click” installers that will do all of the heavy lifting for you. With one click it will do everything for you from the install to configuring the associated application’s database and creating the admin user. Within minutes you have an email in your mailbox telling you that your ready to go! Here is a link to all of DreamHost’s “one click” installers and 3rd party apps.

They actually have some really great support, and to help keep their costs down, they only offer email based support. For some people, that just doesn’t work for them. I can honestly say that I really haven’t had much to complain about in over a decade of relying on them. Their email support has been timely. In my opinion, they are a wonderful hosting company. If you need things simple and easy, and don’t really want to mess around with having to do anything yourself, this is the perfect hosting company for you to use. They do also offer more advanced stuff too.

If you need something a little more powerful or robust. Or if you are that nerd that wants to have a bit more control over the server hosting your site, then it’s time to consider taking a look at a larger provider like Amazon Web Services (AWS). AWS has some great options to choose from and with services like, Lightsail, they make it super simple and affordable to make and host a website or application. Their Lightsail offering even have many of the same “one-click” install options. In an attempt to broaden my own knowledge and skills on AWS, I have started to move my “web things” over to them. I don’t have any complaints. And being able to manage the underlining server my site runs one at the OS level, gives lots of options for me. As an IT professional, I’m hopping compute pools and settling into the AWS and Azure environments for my next ride. Both of these LARGE cloud providers offer so much to the power user like myself. At some point, I’ll write up an article on creating your first Lightsail in AWS, so stay tuned!

Category: AWS | LEAVE A COMMENT