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 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.
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.
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.
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.