Day 45: Deploy Wordpress website on AWS

Day 45: Deploy Wordpress website on AWS

Over 30% of all websites on the internet use WordPress as their content management system (CMS). It is most often used to run blogs, but it can also be used to run e-commerce sites, message boards, and many other popular things. This guide will show you how to set up a WordPress blog site.

Task-01

  • As WordPress requires a MySQL database to store its data ,create an RDS as you did in Day 44

To configure this WordPress site, you will create the following resources in AWS:

  • An Amazon EC2 instance to install and host the WordPress application.

  • An Amazon RDS for MySQL database to store your WordPress data.

  • Setup the server and post your new Wordpress app.

To create a WordPress application deployed on an Ubuntu AWS EC2 instance connected to an RDS MySQL database, follow these steps:

  1. Launch an EC2 Instance:

    • Log in to your AWS Management Console.

    • Navigate to the EC2 dashboard.

    • Launch an Ubuntu instance (select the appropriate instance type and configuration).

    • Make sure to configure the security group to allow HTTP (port 80) and HTTPS (port 443) traffic.

  2. Connect to your EC2 Instance:

    • Use SSH to connect to your EC2 instance:

        ssh -i your-key.pem ubuntu@your-ec2-instance-public-ip
      

  1. Install LAMP Stack (Linux, Apache, MySQL, PHP):

    • Run the following commands:

        sudo apt update
        sudo apt install apache2 mysql-server php php-mysql php-curl php-gd php-mbstring php-xml php-xmlrpc php-soap php-intl php-zip
      

  1. Download and Install WordPress:

    • Navigate to the Apache web root directory:

        cd /var/www/html
      

    • Download the latest version of WordPress:

        sudo wget -c http://wordpress.org/latest.tar.gz
      
    • Extract the downloaded file:

        sudo tar -xzvf latest.tar.gz
      
    • Set appropriate permissions:

        sudo chown -R www-data:www-data /var/www/html/wordpress
        sudo chmod -R 755 /var/www/html/wordpress
      
    • Copy the sample configuration file:

        sudo cp /var/www/html/wordpress/wp-config-sample.php /var/www/html/wordpress/wp-config.php
      
    • Edit the configuration file to include your RDS MySQL database credentials:

        sudo nano /var/www/html/wordpress/wp-config.php
      
    • Save and close the file.

  2. Create a MySQL Database on RDS:

    • Log in to your AWS Management Console.

    • Navigate to the RDS dashboard.

    • Create a new MySQL database instance.

    • Make a note of the database endpoint, username, and password.

  3. Configure Apache Virtual Host:

    • Create a new virtual host configuration file:

        sudo nano /etc/apache2/sites-available/wordpress.conf
      
    • Add the following configuration (replace your-domain.com with your domain):

        <VirtualHost *:80>
            ServerAdmin admin@your-domain.com
            DocumentRoot /var/www/html/wordpress
            ServerName your-domain.com
            ServerAlias www.your-domain.com
      
            <Directory /var/www/html/wordpress>
                Options FollowSymLinks
                AllowOverride All
                Require all granted
            </Directory>
      
            ErrorLog ${APACHE_LOG_DIR}/error.log
            CustomLog ${APACHE_LOG_DIR}/access.log combined
        </VirtualHost>
      
    • Enable the virtual host:

        sudo a2ensite wordpress.conf
      
    • Restart Apache:

        sudo systemctl restart apache2
      
  4. Configure DNS:

    • Update your DNS settings to point to your EC2 instance's public IP or domain.
  5. Access WordPress:

    • Open your web browser and navigate to your domain.

    • Follow the WordPress installation wizard to complete the setup.

Your WordPress application should now be deployed on your Ubuntu EC2 instance and connected to the RDS MySQL database.