Skip to content

Instantly share code, notes, and snippets.

@sharayusj
Created April 24, 2023 09:10
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sharayusj/42f191a436c49559591bee4b47ce9f76 to your computer and use it in GitHub Desktop.
Save sharayusj/42f191a436c49559591bee4b47ce9f76 to your computer and use it in GitHub Desktop.
Deploying a high-availability WordPress website with an external Amazon EC2
1. Install Apache server on Ubuntu
sudo apt install apache2
2. Install php runtime and php mysql connector
sudo apt install php libapache2-mod-php php-mysql
3. Install MySQL server
sudo apt install mysql-server
4. Login to MySQL server
sudo mysql -u root
5. Change authentication plugin to mysql_native_password (change the password to something strong)
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password by 'Testpassword@123';
6. Create a new database user for wordpress (change the password to something strong)
CREATE USER 'wp_user'@localhost IDENTIFIED BY 'Testpassword@123';
7. Create a database for wordpress
CREATE DATABASE wp;
8. Grant all privilges on the database 'wp' to the newly created user
GRANT ALL PRIVILEGES ON wp.* TO 'wp_user'@localhost;
9. Download wordpress
cd /tmp
wget https://wordpress.org/latest.tar.gz
10. Unzip
tar -xvf latest.tar.gz
11. Move wordpress folder to apache document root
sudo mv wordpress/ /var/www/html
12. Command to restart/reload apache server
sudo systemctl restart apache2
OR
sudo systemctl reload apache2
13. Install certbot
sudo apt-get update
sudo apt install certbot python3-certbot-apache
14. Request and install ssl on your site with certbot
sudo certbot --apache
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment