Install Elgg on AWS EC2 Instance with SSL

Step by step tutorial to install Elgg social network on Amazon Web Services EC2 instance with free control panel Virtualmin and nginx.

Elgg makes building a social network around your business or organization a breeze. But it needs some initial setting up if you’re planning to host Elgg on Amazon Web Services. If that is the case for you, this post will help you install Elgg on AWS EC2 instance with Virtualmin control panel, nginx web server and SSL.

Elgg is fully compatible with Amazon Web Services. AWS EC2 instances are basically VPS. They can be configured as high performance web servers with little extra work. I’ll walk you through configuring your AWS EC2 instance and installing Elgg with SSL. I’ll try to make this tutorial as newbie friendly as possible.

We’ll be building our web server with Virtualmin v7.1 GPL control panel. It’s a free control panel and packs powerful features to manage a web server. Additionally, we’ll be installing Nginx v1.22, PHP v8.0 and MySQL v8. Complete below steps to install Elgg on AWS EC2 Instance with SSL.

hire a freelancer to install Elgg Not a tech guy? Rather have a freelancer install Elgg on Amazon Web Services for you?
Hire me and have your Elgg ready within 24 hours!
Get Elgg Installed

Step #1 – Create an EC2 instance for Elgg and install Virtualmin

This step will get your AWS EC2 instance ready for Elgg. We’ll create an EC2 instance with Ubuntu 20.04 as operating system and install Virtualmin. This is the most time-consuming part of the Elgg installation process. But my step by step instructions will make it easy to setup your EC2 instance with Virtualmin even if you’re totally new to AWS and EC2.

Tutorial: Install Virtualmin on AWS EC2 instance

Step #2 – Add your Elgg domain to Virtualmin on AWS

Your EC2 instance is ready to host Elgg or any other website when you complete above steps. It’s now time to add your Elgg domain to Virtualmin. Virtualmin has something called Virtual Servers for this purpose. You need to create a top-level server within Virtualmin for each of your domains. Don’t forget to point your Elgg domain to EC2 instance with an A record.

Tutorial: Add Elgg domain to Virtualmin

Step #3 – Enable SSL (https) for Elgg on AWS EC2

Virtualmin offers an option to request a Let’s Encrypt SSL certificate for your Elgg domain. Now that you have Virtualmin installed and Elgg domain added to your EC2 instance, it is the perfect time to enable Let’s Encrypt SSL for Elgg. Let’s Encrypt SSL certificate are issued free of charge and Virtualmin is capable of auto renewing them.

Tutorial: Install Let’s Encrypt SSL Certificate for Elgg with Virtualmin

Step #4 – Obtain Elgg MySQL database credentials from Virtualmin on AWS

Virtualmin automatically creates a MySQL database for your Elgg when you add your domain with above instructions. But it won’t display login credentials on-screen. You’ll need this information to complete the Elgg installation on AWS EC2. Fortunately you can easily get MySQL credentials from Virtualmin.

Tutorial: Obtain Elgg MySQL credentials from Virtualmin

Step #5 – Install Elgg on AWS EC2 with Virtualmin

You have everything setup for Elgg now. We took care of every little configuration that is required to run a perfect web server on Amazon Web Services EC2. This step is to actually install Elgg on your AWS EC2 instance. Complete the installation with below tutorial. You can ignore the prerequisites section.

Tutorial : Install Elgg with Virtualmin

Step #6 – Redirect http to https with Virtualmin on AWS

Your Elgg should be fully functional at this point. We will wrap things up by setting up 301 redirects from http to https. This step increases Elgg security a bit. This will make sure nobody can spying on your Elgg traffic.

Tutorial : 301 Redirects from http to https with Virtualmin

That’s it. If you’ve followed all the steps above, you now have a superfast Elgg installation on Amazon Web Services with Virtualmin control panel and LEMP stack. Head over to our sysadmin support forum to get help if you run into errors.


Hey!! I'm Tharindu. I'm from Sri Lanka. I'm a part time freelancer and this is my blog where I write about everything I think might be useful to readers. If you read a tutorial here and want to hire me, contact me here.

Leave a Reply

Your email address will not be published. Required fields are marked *

Back to top button