Launch WordPress on AWS & Connect to MySQL RDS Database

Here, we are going to integrate AWS with WordPress and also get to learn more about Amazon RDS Service.

Steps to complete the task are —

  • Create an AWS EC2 instance
  • Configure the instance with Apache Webserver
  • Download PHP application name “WordPress”
  • Setup a MySQL server using AWS RDS service
  • Provide the endpoint/connection string to the WordPress application

The Execution —

Step 1 — Create an AWS EC2 instance

(for creating EC2 instance refer → https://niharicka.medium.com/key-pair-security-group-volume-creation-on-aws-using-cli-c7e28d3eceab)

Step 2 —Configure the instance with Apache Webserver
(for setting webserver refer step 1 of → https://niharicka.medium.com/high-availability-architecture-with-aws-cli-551c708890ae)

Step 3 — Download PHP application name “WordPress”
Sub Steps involve : installing pre-requisites for hosting the WordPress Website

# PRE-REQUISITES
[root@ip-172-16-97-255 ~]# yum install php
[root@ip-172-16-97-255 ~]# yum install php-mysqlnd[root@ip-172-16-97-255 ~]# yum install php-fpm[root@ip-172-16-97-255 ~]# yum install mariadb-server
# DOWNLOAD THE REQUIRED PHP APPLICATION
[root@ip-172-16-97-255 ~]# curl https://wordpress.org/latest.tar.gz --output wordpress.tar.gz
# UNZIP FILE AND COPY IT TO DEFAULT APACHE WEBSERVER FOLDER
[root@ip-172-16-97-255 ~]# tar xf wordpress.tar.gz
[root@ip-172-16-97-255 ~]# cp -r wordpress /var/www/html
# PROVIDING SUDO ACCESS TO THE APACHE USER
[root@ip-172-16-97-255 ~]# chown -R apache:apache /var/www/html/wordpress/
[root@ip-172-16-97-255 ~]# chcon -t httpd_sys_rw_content_t /var/www/html/wordpress/ -R

Step 4 — Setup MySQL server using AWS RDS Service
Sub Steps involve : create MYSQL database on RDS, launch the Database

Setup AWS RDS Console :

  • Inside the AWS RDS Console, create a database with
ENGINE OPTIONS :: MySQL
EDITION :: MYSQL Community
VERSION :: mysql 5.8.1
DB INSTANCE IDENTIFIER :: mydb1
MASTER USERNAME :: niharika
MASTER PASSWORD :: ******
DATABASE INSTANCE SIZE :: Burstable classes [includes t classes]
STORAGE TYPE :: General Purpose (SSD)
ALLOCATED STORAGE :: 25 Gib
STORAGE AUTOSCALING :: ENABLE STORAGE AUTOSCALING (check the box)
MAXIMUM STORAGE THRESHOLD :: 50 Gib
VPC :: Default
SUBNET GROUP :: Default
PUBLIC ACCESS :: NO
VPC SECURITY GROUP :: choose existing
DATABASE PORT :: 3306
  • Launch the database
[root@ip-172-16-97-255 ~]# mysql -h mydb1.col64zxct6js.ap-south-1.rds.amazonaws.com -u niharika -p /* enter the password on prompt and its done*/ 

Step 5 — Provide the endpoint/connection string to the WordPress application

Enter the following details and proceed
Enter the credentials and login

And its done.

Thank You!

--

--

--

Full Stack Web Developer | Ansible | Docker | Kubernetes | OpenShift | RedHat | AWS | Azure | GCP

Love podcasts or audiobooks? Learn on the go with our new app.

Recommended from Medium

Producer Consumer problem.

The Technical Side of Localisation. Or How and Why Alconost is Building Own Product — GitLocalize

The subtle discipline of daily commits and value delivery

Configure Docker Using Ansible Playbooks

Building a Slack Reminder App 🤖 with Google Cloud Functions ⚡ and Google Cloud Scheduler ⏰

Asynchronous processing using Spring

Git all you need.

PYTHON List_Comprehension :

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Niharika Dhanik

Niharika Dhanik

Full Stack Web Developer | Ansible | Docker | Kubernetes | OpenShift | RedHat | AWS | Azure | GCP

More from Medium

Hosting your static WordPress site on AWS S3

Host your WordPress site for free.

How to Setup a PHP-based AWS Lambda function

Getting WordPress to Work with Amazon CloudFront