This Learning Path explains how to install MySQL Community Server and WordPress on an Arm virtual machine instance in Oracle Cloud Infrastructure (OCI).
You may want to review the Learning Path Getting Started with Oracle OCI before proceeding.
You can deploy an Arm (Ampere) compute instance in OCI via the console or using Terraform.
If you want to deploy a compute instance using Terraform, you can follow the Learning Path Deploy Arm Instances on Oracle Cloud Infrastructure (OCI) using Terraform .
The compute instance should be created with Oracle Linux 9 as the operating system.
To install WordPress and MySQL, connect to the compute instance using SSH. For Oracle Linux the username is
Use the SSH key you setup when creating the instance and your public IP address.
ssh and substitute your SSH key and your public IP address:
ssh -i <your-ssh-key> opc@<your public IP>
You are now connected to your OCI instance and ready to start installing WordPress.
Start by installing MySQL 8.1, the latest Innovation Release, using the Community repository.
You need to install the Yum repository for the correct OS version, in this case Oracle Linux 9:
The output should be similar to:
Oracle Linux Server release 9.2
Visit https://dev.mysql.com/downloads/repo/yum/ to see the contents of the latest YUM repository.
rpm to install the repository setup package:
sudo rpm -ivh https://dev.mysql.com/get/mysql80-community-release-el9-4.noarch.rpm
Next, install MySQL and MySQL Shell:
sudo dnf install -y mysql-community-server mysql-shell \
--enablerepo mysql-innovation-community --enablerepo mysql-tools-innovation-community
Start MySQL using
sudo systemctl start mysqld
By default, MySQL generates a password for the
root user. Use the
grep command to find the generated password:
sudo grep password /var/log/mysqld.log
The password is shown in the output (your password will be different).
2023-09-06T08:47:37.029047Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: cMP,ycA01Yoq
Make a note of the
Connect to the MySQL instance using MySQL Shell:
mysqlsh --sql mysql://root@localhost
Proceed through the questions. Enter your saved
root password and answer
No that you don’t want to save it.
You will end up at a MySQL prompt that includes
Please provide the password for 'root@localhost': ************
Save password for 'root@localhost'? [Y]es/[N]o/Ne[v]er (default No): no
Error during auto-completion cache update: You must reset your password using ALTER USER statement before executing this statement.
MySQL Shell 8.1.1
Copyright (c) 2016, 2023, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its affiliates.
Other names may be trademarks of their respective owners.
Type '\help' or '\?' for help; '\quit' to exit.
Creating a Classic session to 'root@localhost'
Your MySQL connection id is 8
No default schema selected; type \use <schema> to set one.
MySQL localhost SQL >
At the SQL prompt change the password:
The output will be similar to:
Query OK, 0 rows affected (0.0247 sec)
Next, create a database for WordPress and a dedicated user. Make sure you are entering these commands at the
SQL > prompt:
create database wordpress;
create user wordpress identified by 'WPpassw0rd!';
grant all privileges on wordpress.* to wordpress;
The database name
wordpress, the user name
wordpress, and the new password will be used later during WordPress installation.
WordPress can use Apache as a web server. Install
httpd, PHP, and several PHP modules:
sudo yum install -y httpd php php-mysqlnd php-zip php-gd php-mbstring php-xml php-json
You can now start Apache and configure the system to restart it after reboot:
sudo systemctl enable httpd --now
To reach the web server from your local machine, you need to modify the firewall to allow http and https connections to reach the web server.
Open the firewall using the commands:
sudo firewall-cmd --permanent --add-port=80/tcp
sudo firewall-cmd --permanent --add-port=443/tcp
sudo firewall-cmd --reload
You also need to modify the security list in the OCI console.
Select the compute instance’s subnet:
Click on the default security list.
Add a new rule to allow http and https connections (TCP ports 80 and 443) for the world (0.0.0.0/0):
When you are done, enter the compute instance’s public IP address in your browser and you should see the following page:
You also need to make modifications to SE Linux to allow Apache to connect and write data to MySQL:
Run the commands:
sudo chcon -t httpd_sys_rw_content_t /var/www/html -R
sudo setsebool -P httpd_can_network_connect_db 1
You can download the latest WordPress release using the commands below.
Download the latest release:
curl -O https://wordpress.org/latest.tar.gz
Extract the downloaded file in the web server root directory:
sudo tar zxf latest.tar.gz -C /var/www/html/ --strip 1
Adjust the ownership of the newly installed files:
sudo chown apache. -R /var/www/html/
Create a new folder for future content uploads and set the ownership:
sudo mkdir /var/www/html/wp-content/uploads
sudo chown apache:apache /var/www/html/wp-content/uploads
In the browser where you entered the public IP, refresh the page and you should now see the WordPress installation wizard:
Next, use the database name, user name, and password you created in MySQL and use
127.0.0.1 as database host:
Follow the next steps in the Wizard and at the end you should see your WordPress instance using MySQL running on an Arm Shape (Ampere always free) on OCI: