Migrate WordPress Websites from DigitalOcean CyberPanel to Oracle Cloud OCI CyberPanel

Introduction

A practical step-by-step guide using PuTTY, WinSCP, Cloudflare DNS, CyberPanel backup/restore, SSL, and LiteSpeed Cache

Migrating a live WordPress website from one cloud server to another can feel risky, especially when the website is already connected with Cloudflare DNS, SSL, CyberPanel, databases, and caching.

In this guide, I will explain the complete migration process from DigitalOcean CyberPanel to Oracle Cloud Infrastructure CyberPanel, also called OCI CyberPanel.

This guide is written in a practical way so that you can follow easily.🚀

Let’s get started!

1. What we are doing

We are migrating a WordPress website from the old server to a new Oracle Cloud server.

Old setup:

DigitalOcean Droplet
CyberPanel installed
OpenLiteSpeed web server
Multiple WordPress websites hosted
Cloudflare DNS used

New setup:

Oracle Cloud OCI instance
Ubuntu 22.04
CyberPanel installed
OpenLiteSpeed web server
One WordPress website per OCI instance
Cloudflare DNS used
LiteSpeed Cache enabled

2. Why use Oracle Cloud OCI for WordPress hosting?

Oracle Cloud provides Always Free compute options that can be useful for small WordPress websites, testing servers, lightweight business websites, personal blogs, and development environments.

For this setup, we will use a small Always Free OCI compute instance. It can run a lightweight WordPress website if the server is configured properly.

The instance shape we will use:

Shape: VM.Standard.E2.1.Micro 
OCPU: 1 
RAM: 1 GB 
Network: 0.48 Gbps 
OS: Ubuntu 22.04

This is not a powerful server, so the configuration must be done carefully. The most important steps are adding swap memory, keeping the CyberPanel installation lightweight, and using LiteSpeed Cache with Cloudflare.

3. Important recommendation before starting

The most important rule to remember is:

Never change DNS before testing the migrated website!

First, we will prepare the new OCI server, then restore the website, test it privately using the Windows hosts file, and only then change the Cloudflare DNS.

Do not delete the old DigitalOcean server immediately.
Do not change Cloudflare DNS before testing the website.
Always create a fresh CyberPanel backup.
Use the Windows hosts file to test the migrated site first.
Keep the old server active for at least 3 to 7 days after migration.

This gives you a rollback option if anything goes wrong during or after the migration.

4. Overall migration flow

The complete migration process looks like this:

Create the OCI instance
Connect to the server using PuTTY
Update Ubuntu packages
Add a 2 GB swap file
Open the required OCI network ports
Install CyberPanel
Create a fresh backup from the old DigitalOcean CyberPanel server
Transfer the backup to the OCI server using WinSCP
Restore the backup in OCI CyberPanel
Fix file ownership and permissions
Test the website privately using the Windows hosts file
Change the Cloudflare DNS records
Issue SSL for the website
Configure SSL for the CyberPanel hostname
Enable the Cloudflare proxy
Install and verify LiteSpeed Cache

Step 1: Create a New Oracle Cloud OCI Instance

To begin the migration, create a fresh Oracle Cloud compute instance. This instance will become the new CyberPanel server where the WordPress website backup will be restored.

In the Oracle Cloud Console, go to:

  Menu → Compute → Instances → Create Instance

Oracle Cloud will open a step-by-step instance creation wizard. Complete each section carefully before creating the instance.

1. Basic Information

In the Basic information section, enter a clear instance name.

Example:

  instance-xyz

The compartment can be left as the default/root compartment unless you are already using a separate compartment structure.

Example:

  johnd007 (root)

In the Placement section, Oracle Cloud usually selects the availability domain automatically.

  AD-1

For this migration setup, the default placement setting is fine.

2. Select the Operating System Image

In the Image and shape section, click:

  Change image

Select:

  Ubuntu

From the Ubuntu image list, choose:

  Canonical Ubuntu 22.04

For CyberPanel, Ubuntu 22.04 is a stable and compatible choice.

Avoid these options for this setup:

Ubuntu Minimal
Ubuntu 24.04
Ubuntu aarch64
Oracle Linux
Windows

For this guide, avoid the aarch64 image because it is for ARM-based instances. Use the standard x86_64 Ubuntu image for better CyberPanel compatibility.

3. Select the Correct OCI Shape

After selecting Ubuntu, click:

Change shape

In the shape selection window, select:

Virtual machine

Under Shape series, choose:

Specialty and previous generation

From the available shape list, select:

VM.Standard.E2.1.Micro
Always Free-eligible

This shape provides:

OCPU: 1
Memory: 1 GB
Network bandwidth: 0.48 Gbps

This shape is suitable for a lightweight WordPress website when it is properly optimized with swap memory, Cloudflare, and LiteSpeed Cache.

Important: Choose the AMD/x86-based micro shape, not an ARM/aarch64 shape.

4. Security

Leave it default.

5. Configure Networking

In the Networking step, Oracle Cloud asks whether you want to use an existing VCN or create a new virtual cloud network.

For a fresh setup, choose:

Create new virtual cloud network

Oracle Cloud will automatically create:

New VCN
New public subnet
CIDR block: 10.0.0.0/24

For additional servers, you can also use an existing VCN if it already has the required security rules configured.

Both approaches are valid:

Option 1: Create a new VCN and public subnet
Option 2: Use an existing VCN if it is already configured

If you use an existing VCN, make sure its security list or NSG allows these ports:

22
80
443
8090

These ports are required for SSH access, website access, SSL/HTTPS traffic, and CyberPanel access.

6. Public IPv4 Address Assignment

This is an important step.

Under Public IPv4 address assignment, make sure public IPv4 assignment is enabled.

The server must have a public IPv4 address because it needs to be accessed by:

PuTTY SSH
CyberPanel admin panel
Website HTTP/HTTPS traffic
Cloudflare DNS
WinSCP file transfer

Enable this option:

Automatically assign public IPv4 address

If this option is disabled, the server may be created without a public IP address. In that case, direct PuTTY, WinSCP, CyberPanel, and website access will not work.

The IPv6 warning can be ignored for this setup if the server is being configured with IPv4 only.

7. Add SSH Keys

SSH keys are required to connect to the OCI instance securely.

Oracle Cloud provides these SSH key options:

Generate a key pair for me
Upload public key file
Paste public key
No SSH keys

For a beginner-friendly setup, choose:

Generate a key pair for me

After selecting this option, Oracle Cloud shows two download buttons:

Download private key
Download public key

Download both files.

The private key is the most important file because it is required to connect to the server using PuTTY or WinSCP.

Save both files in a safe folder on your Windows computer.

Example folder:

D:\OCI-SSH-Keys\

Important safety notes:

Never share the private key.
Never upload the private key publicly.
Keep a backup copy in a safe location.
Do not lose the private key.

If the private key is lost and password login is not enabled, SSH access to the server may become difficult.

8. Boot Volume and Storage

In the Storage step, Oracle Cloud shows the boot volume settings.

For a small WordPress website, the default boot volume is usually enough.

In this setup, the server had around:

47 GB root disk

This is enough for:

Ubuntu
CyberPanel
OpenLiteSpeed
MariaDB
WordPress files
Temporary backup files during migration

Oracle Cloud may also show an option to attach a block volume.

For this migration, a separate block volume is not required.

Recommended setting:

Default boot volume
No additional block volume

For larger websites or media-heavy WordPress sites, you can increase the boot volume size during instance creation, increase it later, or attach a separate block volume.

9. Review and Create the Instance

At the final step, Oracle Cloud shows a summary of the selected configuration.

Review these details carefully:

Name: instance-wpcp or instance-wpcp2
Operating System: Canonical Ubuntu 22.04
Shape: VM.Standard.E2.1.Micro
OCPU: 1
Memory: 1 GB
Public IPv4: Enabled
SSH key: Added
Boot volume: Default

If everything looks correct, click:

Create

Oracle Cloud will start creating the instance.

After a few moments, the instance status should become:

Running

Once the instance is running, copy the public IPv4 address.

Example:

178.152.10.15

This public IP address will be used for:

PuTTY SSH login
WinSCP file transfer
CyberPanel access
Cloudflare DNS update
Website migration testing

10. Important Note About OCI Quota Error

While creating more than one VM.Standard.E2.1.Micro instance, an OCI quota error may appear.

Example error:

vm-standard-e2-1-micro-count quota exceeded

This means the tenancy or compartment quota allows fewer micro instances than required.

To fix it, go to:

Governance & Administration → Tenancy Management → Quota Policies

Find the quota policy related to:

vm-standard-e2-1-micro-count

If the policy contains:

set compute quota vm-standard-e2-1-micro-count to 1 in tenancy

Change it to:

set compute quota vm-standard-e2-1-micro-count to 2 in tenancy

Then update the quota policy and try creating the instance again.

This is useful when creating two separate Always Free micro instances.

Step 2: Connect To The Instance Using the PuTTY

1. Convert OCI Private Key to PuTTY .ppk Format

Oracle Cloud downloads the private key in OpenSSH format. PuTTY on Windows usually needs a .ppk file.

So after downloading the private key, convert it using PuTTYgen.

Steps:

1. Open PuTTYgen by searching the keyword below:
Apps:puttygen

2. To select the SSH private key, click below:

Conversions → Import key

This will import the OpenSSH private key into PuTTYgen.

3. Finally, click Save private key to save/download the converted
.ppk file.

This .ppk file was later used in:

PuTTY
WinSCP

PuTTY was used for running Linux commands.

WinSCP was used for uploading and downloading backup files.

2. Connect to OCI Server Using PuTTY

To connect using PuTTY:

Open PuTTY and then go to:

Connection → SSH → Auth → Credentials
Next, browse and attach the converted .ppk key.

Now go back to the Session screen in PuTTY and enter the details below:

Host Name: ubuntu@YOUR_OCI_PUBLIC_IP
Port: 22
Connection Type: SSH
Saved Sessions: Give any name to this session

The .ppk private key should already be attached from the previous step:

Connection → SSH → Auth → Credentials

Finally, click Save to save the PuTTY session. After saving, click Open. PuTTY will open the terminal window and connect you to your OCI server.

Step 3: Verify server details

After connecting to the server with PuTTY, run the following commands to check the server details:

lsb_release -a
uname -m
free -h
df -h

The expected output should confirm the Ubuntu version, CPU architecture, RAM, swap, and disk size.

Ubuntu 22.04.x LTS
x86_64
RAM around 956 MiB
Swap 0B initially
Disk around 47 GB

Example output:

No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 22.04.5 LTS
Release:        22.04
Codename:       jammy
x86_64
               total        used        free      shared  buff/cache   available
Mem:           956Mi       209Mi       155Mi       1.0Mi       592Mi       582Mi
Swap:             0B          0B          0B
Filesystem      Size  Used Avail Use% Mounted on
tmpfs            96M  1.1M   95M   2% /run
efivarfs        256K   17K  235K   7% /sys/firmware/efi/efivars
/dev/sda1        45G  3.4G   42G   8% /
tmpfs           479M     0  479M   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
/dev/sda15      105M  6.1M   99M   6% /boot/efi
tmpfs            96M  4.0K   96M   1% /run/user/1001

This confirms that the server is running the correct Ubuntu version, using the x86_64 architecture, and has the expected RAM and disk size.

Step 4: Update and upgrade Ubuntu Server

Before installing CyberPanel, update the server packages to make sure the system is ready:

sudo apt update
sudo apt upgrade -y
sudo reboot
The sudo reboot command will restart the server, so PuTTY will disconnect automatically. Wait for one or two minutes and then reconnect using PuTTY. This update step is recommended before installing CyberPanel because it helps prevent package dependency and installation-related issues.

Step 5: Add 2 GB swap memory

The OCI micro instance has only 1 GB RAM. CyberPanel, MariaDB, OpenLiteSpeed, PHP, and WordPress may become unstable without swap.

Create a 2 GB swap file:

sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile

Make the swap file permanent so it remains active after reboot:

echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

Check whether swap is active:

free -h

Expected output:

Swap: 2.0Gi

Confirm that the swap entry has been added to /etc/fstab:

cat /etc/fstab

You should see this line:

/swapfile none swap sw 0 0

This confirms that swap is active and will remain enabled even after the server is rebooted.

Tune swap settings

Now tune the swap settings so Ubuntu uses RAM first and uses swap only when needed.

echo 'vm.swappiness=10' | sudo tee /etc/sysctl.d/99-cyberpanel-swap.conf
echo 'vm.vfs_cache_pressure=50' | sudo tee -a /etc/sysctl.d/99-cyberpanel-swap.conf

Apply the new settings:

sudo sysctl --system

Check whether the settings were applied correctly:

cat /proc/sys/vm/swappiness
cat /etc/sysctl.d/99-cyberpanel-swap.conf

Expected output:

10
vm.swappiness=10
vm.vfs_cache_pressure=50

Step 6: Open Required OCI Ports

Oracle Cloud has a network firewall called Security List or Network Security Group. Oracle describes security lists as virtual firewalls for instances, where ingress and egress rules control allowed traffic.

1. Go to OCI Security List

In Oracle Cloud Console:

☰ Menu → Networking → Virtual Cloud Networks

Open your VCN.

Then go to:

Security → Default Security List → Security Rules

Now add ingress rules.

2. Add required ingress rules

Add these rules:
Source CIDR Protocol Destination Port Purpose
0.0.0.0/0 TCP 80 HTTP website
0.0.0.0/0 TCP 443 HTTPS website
YOUR_IP/32 TCP 22 SSH PuTTY
YOUR_IP/32 TCP 8090 CyberPanel admin
YOUR_IP/32 TCP 7080 OpenLiteSpeed WebAdmin optional
 

For easier setup during installation, you can temporarily use:

0.0.0.0/0
For port 8090, but after setup, restrict it to your own IP. Minimum ports required for your case:
22
80
443
8090

3. Also allow ports in Ubuntu firewall if active

Check UFW:

sudo ufw status

If UFW is active, allow the required ports:

sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow 8090/tcp
sudo ufw reload
If UFW says inactive, no problem. In that case, OCI Security List or NSG rules are still the most important firewall settings.

Step 7: Install CyberPanel on OCI

Become root:

bash
sudo su -

Check that no apt process is running:

bash
ps aux | grep -i apt

If you see only the grep line, fine.

Also run:

bash
sudo lsof /var/lib/dpkg/lock-frontend

If it returns nothing, fine.

Fix dpkg if needed:

bash
dpkg --configure -a
apt update

Start CyberPanel installer:

bash
sh <(curl https://cyberpanel.net/install.sh || wget -O - https://cyberpanel.net/install.sh)

During installation, choose generally:

text
Install CyberPanel [Enter-1]
Install CyberPanel with OpenLiteSpeed [Enter-1]
Full service: No
Postfix: No
PowerDNS: No
Pure-FTPd: No
Remote MySQL: No
Memcached: No
Redis: No
WatchDog: Yes

For your 1 GB RAM server, I recommend:

text
Redis: No initially
Memcached: No initially

Example:

text
                CyberPanel Installer v2.4.7

1. Install CyberPanel.

2. Exit.


  Please enter the number[1-2]: 1

                CyberPanel Installer v2.4.7

RAM check : 511/1963MB (26.03%)

Disk check : 19/68GB (27%) (Minimal 10GB free space)

1. Install CyberPanel with OpenLiteSpeed.

2. Install Cyberpanel with LiteSpeed Enterprise.

3. Exit.


  Please enter the number[1-3]: 1


Install Full service for CyberPanel? This will include PowerDNS, Postfix and Pure-FTPd.

Full installation [Y/n]: n

Install Postfix? [Y/n]: n

Install PowerDNS? [Y/n]: n

Install PureFTPd? [Y/n]: n

Do you want to setup Remote MySQL? (This will skip installation of local MySQL)

(Default = No) Remote MySQL [y/N]: n

Local MySQL selected...

Press Enter key to continue with latest version or Enter specific version such as: 1.9.4 , 2.0.1 , 2.0.2 ...etc

Branch name set to v2.4.7

Please choose to use default admin password 1234567, randomly generate one (recommended) or specify the admin password?
Choose [d]fault, [r]andom or [s]et password: [d/r/s] 
Admin password will be provided once installation is completed...


Do you wish to install Memcached process and its PHP extension?
Please select [Y/n]: n

Do you wish to install Redis process and its PHP extension?
Please select [Y/n]: n

Would you like to set up a WatchDog (beta) for Web service and Database service ?
The watchdog script will be automatically started up after installation and server reboot
If you want to kill the watchdog , run watchdog kill
Please type Yes or no (with capital Y, default Yes): Yes

Keep the setup simple first. You can enable caching later if memory allows.

Once Cyberpanel will installed successfully, it will ask “would you like to restart your server now?” Entrer “Y”.

Step 8: Verify CyberPanel services after reboot

Reconnect with PuTTY. Check OpenLiteSpeed:
bash
sudo systemctl status lsws
Expected:
text
Active: active (running)
Press q to exit the service status screen.
text
q
Check CyberPanel service:
bash
sudo systemctl status lscpd
Expected:
text
Active: active (running)
Check MariaDB:
bash
sudo systemctl status mariadb
Expected:
text
Active: active (running)
Status: Taking your SQL requests now
Check port 8090:
bash
sudo ss -tulpn | grep 8090
Expected:
text
0.0.0.0:8090

Step 9: Reset CyberPanel password

If you forgot the CyberPanel password, reset it from PuTTY. Become root:
bash
sudo su -
Reset the CyberPanel admin password:
bash
adminPass 'YourNewStrongPassword2026'
Use single quotes if the password contains special characters like &, $, or !. Then log in again:
text
https://YOUR_OCI_PUBLIC_IP:8090
Username: admin
Password: YourNewStrongPassword2026

Step 10: Login To The CyberPanel in browser

First, get your OCI public IP:
bash
curl ifconfig.me
It will show something like:
text
150.xxx.xxx.xxx
Now open this URL in your Windows browser:
text
https://YOUR_OCI_PUBLIC_IP:8090
Example:
text
https://150.xxx.xxx.xxx:8090
You may see a browser warning like Your connection is not private. This is normal because CyberPanel initially uses a self-signed certificate. Click:
text
Advanced → Proceed
Use:
text
Username: admin
Password: the password shown/generated during CyberPanel installation
After login, immediately change the admin password if needed. If it does not open Your OCI rule for port 8090 may be restricted to this IP:
text
157.49.51.152/32
If your ISP changed your public IP, the page will not open. Check your current public IP on your Windows browser by searching:
text
what is my ip
If it is different from 157.49.51.152, update the OCI ingress rule for port 8090, or temporarily use:
text
0.0.0.0/0 → TCP → 8090
Once you can log in to CyberPanel, the next step is to create or restore your WordPress site backup from DigitalOcean.

Step 11: Create Backup from Old DigitalOcean CyberPanel

Log in to the old DigitalOcean CyberPanel.

Go to:

text
Backup → Create Backup

Select the website and choose the backup destination:

text
Home

Click:

text
Create Backup

After completion, verify the backup from the DigitalOcean terminal:

bash
ls -lh /home/example.com/backup/
cat /home/example.com/backup/status

Example:

bash
ls -lh /home/prowebmentor.com/backup/
cat /home/prowebmentor.com/backup/status

Expected:

text
backup-example.com-date-time.tar.gz
Completed

Step 12: Transfer backup using WinSCP

WinSCP is a Windows file transfer tool that works over SFTP. PuTTY is for commands, while WinSCP is for transferring files.

1. Download from DigitalOcean

Connect WinSCP to the old DigitalOcean server:

text
Protocol: SFTP
Host: OLD_DIGITALOCEAN_PUBLIC_IP
Port: 22
Username: root

In WinSCP, at the top path/address bar, type this path and press Enter:

text
/home/example.com/backup/

You should see:

text
backup-example.com-05.13.2026_17-15-58.tar.gz
status

Download the backup file to your Windows PC.

If a permission error occurs, run this command on the old server:

bash
chmod 644 /home/example.com/backup/backup-example.com-date-time.tar.gz

2. Upload to OCI


Open a new WinSCP session.

Connect to the new OCI server:

text
File protocol: SFTP
Host name: OCI_PUBLIC_IP
Port: 22
Username: ubuntu
Private key: your OCI .ppk key

Upload the backup file to:

text
/home/ubuntu/

Then in PuTTY, move it to the CyberPanel backup folder:

bash
sudo mkdir -p /home/backup
sudo mv /home/ubuntu/backup-example.com-date.tar.gz /home/backup/
sudo chmod 644 /home/backup/backup-example.com-date.tar.gz
ls -lh /home/backup/

Expected:

text
backup-example.com-date.tar.gz

Step 13: Restore Backup on OCI CyberPanel

Log in to the new CyberPanel.

Go to:

text
Backup → Restore Backup

Select the uploaded backup file.

Click:

text
Restore

Wait until the restoration completes.

Because the server has only 1 GB RAM, do not run other heavy tasks during the restore process.

After the restore, check the website files:

bash
sudo ls -la /home/example.com/public_html/ | head

You should see:

text
wp-admin
wp-content
wp-includes
wp-config.php

Also check:

text
CyberPanel → Websites → List Websites

The restored website should appear in the website list.

Step 14: Fix WordPress file ownership and permissions

After restore, check file ownership:
bash
sudo ls -la /home/example.com/public_html/ | head
You should see, something like below:
text
drwxr-x--- 5 wnetl1574 nogroup 4096 May 12 14:38 . 
drwx--x--x 11 wnetl1574 wnetl1574 4096 May 13 17:15 .. 
-rw-r--r-- 1 docker docker 875 Oct 18 2025 .htaccess 
-rw-r--r-- 1 docker docker 3654 Dec 20 2024 .htaccess.bk
In this example, the site owner is wnetl1574 but the file owner is docker. This is not ideal. This can cause WordPress problems later, such as:
text
Cannot upload media
Cannot update plugins/themes
Cannot edit .htaccess
Permission errors
So fix ownership now.:
bash
sudo chown -R wnetl1574:nogroup /home/example.com/public_html/
Fix directory permissions:
bash
sudo find /home/example.com/public_html/ -type d -exec chmod 755 {} \;
Fix file permissions:
bash
sudo find /home/example.com/public_html/ -type f -exec chmod 644 {} \;
Set public_html permission:
bash
sudo chmod 750 /home/example.com/public_html/
Verify:
bash
sudo ls -la /home/example.com/public_html/ | head
Expected:
text
drwxr-x--- 5 wnetl1574 nogroup 4096 May 12 14:38 . 
drwx--x--x 11 wnetl1574 wnetl1574 4096 May 13 17:15 .. 
-rw-r--r-- 1 wnetl1574 nogroup 875 Oct 18 2025 .htaccess 
-rw-r--r-- 1 wnetl1574 nogroup 3654 Dec 20 2024 .htaccess.bk

Step 15: Test website before changing Cloudflare DNS

Before changing Cloudflare DNS, test the restored site privately from your own Windows PC.

1. Open CMD as Administrator

Search:
text
cmd
Right-click:
text
Command Prompt → Run as administrator

2. Run This Command

cmd
notepad c:\Windows\System32\drivers\etc\hosts
Now the hosts file will open in Notepad. Edit it, then click:
text
File → Save
Example entry
Add lines like this at the bottom:
text
150.xxx.xxx.xxx example.com
150.xxx.xxx.xxx www.example.com

3. Flush DNS After Saving

In CMD as Administrator, run:
cmd
ipconfig /flushdns
Then test the website in your browser.

If Notepad says “Access denied”
It means CMD was not opened as Administrator. Close CMD and open it again using:
text
Run as administrator

4. Test website

Open browser:

text
http://example.com

Test:

text
Homepage
/wp-admin login
Images
CSS/JS
Contact forms
Permalinks
Plugins
Uploads
Forms
Speed

At this stage, HTTPS may not work properly because Cloudflare DNS is still pointing to DigitalOcean. Test mainly over HTTP first.

5. Fix permalinks

In WordPress admin:

text
Settings → Permalinks → Save Changes

Do not change anything. Just click Save Changes.

Step 16: Change Cloudflare DNS to OCI IP

Go to Cloudflare DNS for the domain. Change:
text
A    yourdomain.com    OLD_DIGITALOCEAN_IP
to:
text
A    yourdomain.com    OCI_PUBLIC_IP
For www, either use:
text
A    www    OCI_PUBLIC_IP
or:
text
CNAME    www    yourdomain.com
During SSL setup, keep proxy status:
text
DNS only
Do not touch email records like:
text
MX
SPF
DKIM
Zoho verification
Google verification
After the DNS change, remove the hosts file entries from Windows. Flush DNS:
cmd
ipconfig /flushdns
Check DNS:
cmd
nslookup yourdomain.com
Expected:
text
OCI_PUBLIC_IP

Step 17: Issue SSL from OCI CyberPanel

Go to:
text
https://OCI_PUBLIC_IP:8090
Then in CyberPanel:
text
Websites → List Websites → w3netlab.com → Manage
Find the SSL option and issue SSL for:
text
yourdomain.com
www.yourdomain.com
Before issuing SSL, confirm in Cloudflare that both records are set to DNS only:
text
A      yourdomain.com    OCI_PUBLIC_IP    DNS only
CNAME  www             yourdomain.com    DNS only
After SSL issue
Open:
text
https://yourdomain.com
Also check:
text
https://www.yourdomain.com
If both open without warning, then you can turn Cloudflare proxy back to Proxied and set SSL mode to Full (strict).

Step 17: Issue SSL from OCI CyberPanel

CyberPanel should not be accessed permanently using IP.

Instead, create a subdomain like:

text
cp.yourdomain.com

Example:

text
cp.w3netlab.com
cp.prowebmentor.com

In Cloudflare DNS, add:

text
Type: A
Name: cp
Content: OCI_PUBLIC_IP
Proxy status: DNS only
TTL: Auto

Important:

text
cp.yourdomain.com must remain DNS only.
Do not enable Cloudflare proxy for CyberPanel port 8090.

Now set the hostname on the server:

bash
sudo hostnamectl set-hostname cp.yourdomain.com

Edit the hosts file:

bash
sudo nano /etc/hosts

Add:

text
127.0.1.1 cp.yourdomain.com cp

Save:

text
Ctrl + O → Enter → Ctrl + X

Check:

bash
hostname
hostname -f

Expected:

text
cp.yourdomain.com
cp.yourdomain.com

Now in CyberPanel, issue Hostname SSL:

text
SSL → Hostname SSL

or click:

text
Issue Hostname SSL

Use:

text
cp.yourdomain.com

Restart CyberPanel:

bash
sudo systemctl restart lscpd

Now access CyberPanel using:

text
https://cp.yourdomain.com:8090

The certificate should show the correct domain.

It may be issued by:

text
Let’s Encrypt

or:

text
ZeroSSL

Both are okay if the browser shows the certificate as valid and trusted.

Step 18: Enable Cloudflare proxy safely

After website SSL works, you can enable Cloudflare proxy for the main website.

For website records:

text
yourdomain.com → Proxied
www → Proxied

For CyberPanel admin:

text
cp.yourdomain.com → DNS only

Do not proxy the CyberPanel subdomain.

In Cloudflare SSL/TLS settings, use:

text
Full (strict)

Avoid:

text
Flexible

Flexible SSL may cause redirect loops and WordPress SSL problems.

Step 19: Install LiteSpeed Cache plugin

Since CyberPanel uses OpenLiteSpeed, install the LiteSpeed Cache plugin in WordPress.

Go to:

text
WordPress Admin → Plugins → Add New

Search:

text
LiteSpeed Cache

Install and activate the plugin.

Step 20: Recommended LiteSpeed Cache settings for 1 GB OCI server

Use simple and safe settings.

Cache tab
text
Enable Cache: ON
Cache Logged-in Users: OFF
Cache Commenters: OFF
Cache REST API: OFF initially
Cache Login Page: ON
Cache Mobile: OFF initially

TTL tab
Default values are okay:
text
Default Public Cache TTL: 604800
Default Front Page TTL: 604800
Default Private Cache TTL: 1800
404 TTL: 3600
500 TTL: 600

Purge tab
Keep:
text
Purge All On Upgrade: ON
Auto purge front page, home page, pages, archives: ON
Serve Stale: OFF

Excludes tab
Keep Elementor preview excluded:
text
action=elementor
preview=true

ESI tab
text
Enable ESI: OFF

Object tab
For 1 GB RAM:
text
Object Cache: OFF
If it shows:
text
Connection Test: Failed
that is okay when Object Cache is OFF.
Browser tab
text
Browser Cache: ON
Browser Cache TTL: 86400
This means 1 day browser cache.

Advanced tab
Keep:
text
AJAX Cache TTL: Empty
Login Cookie: Empty
Vary Cookies: Empty
Improve HTTP/HTTPS Compatibility: OFF
Instant Click: OFF

Step 21: Verify LiteSpeed Cache is working

From SSH, run:
bash
curl -I https://yourdomain.com
Run it twice. Look for:
text
x-litespeed-cache: hit
Example good output:
text
x-powered-by: CyberPanel-OLS
x-turbo-charged-by: LiteSpeed
x-litespeed-cache: hit
server: cloudflare
cf-cache-status: DYNAMIC
This means:
text
LiteSpeed Cache is working on your server.
Cloudflare proxy is also active.
cf-cache-status: DYNAMIC is normal. It means Cloudflare is not caching the HTML page, but LiteSpeed is caching it at the origin server.

Frequently Asked Question [FAQ]

CyberPanel Login Page Not Loading?

Most likely reason: your public IP changed, or the IP you added in OCI Security List is not the same IP Cloud/OCI sees for your connection.

Your website loads because ports 80 and 443 are open to everyone. CyberPanel does not load because port 8090 is restricted to only your IP.

Why is my website loading but CyberPanel is not loading?


Your website uses normal web ports:

text
80  = HTTP
443 = HTTPS

CyberPanel uses a different admin port:

text
8090

So it is possible for the website to load correctly while CyberPanel does not load.

This usually means:

text
Ports 80 and 443 are open ✅
Port 8090 is blocked or restricted ❌

If you recently changed the OCI security rule for CyberPanel like this:

text
Source CIDR: your-ip/32
Protocol: TCP
Destination Port: 8090

then CyberPanel will only open from that exact public IP address.

How do I check my current public IP?

On your PC, open browser and visit:

text
https://api.ipify.org/

Copy the IPv4 address.

Then update the OCI security rule like this:

text
Source CIDR: your-current-ip/32
Protocol: TCP
Destination Port: 8090

Example:

text
157.49.51.152/32 → TCP → 8090

How do I confirm if OCI rule is the issue?

Temporarily change the port 8090 rule to:
text
0.0.0.0/0 → TCP → 8090
Then try:
text
https://cp.yourdomain.com:8090
If CyberPanel opens, the problem was your IP restriction. After testing, change the rule back to your current IP:
text
your-current-ip/32 → TCP → 8090

What should Cloudflare setting be for CyberPanel?

The For example:cp subdomain must be:
text
DNS only
Correct:
text
A  cp  SERVER_PUBLIC_IP  DNS only
Wrong:
text
A  cp  SERVER_PUBLIC_IP  Proxied
Do not proxy CyberPanel port 8090.

How do I check if CyberPanel is running?


SSH into the server and run:

bash
sudo systemctl status lscpd

Expected:

text
Active: active (running)

If it is not running, restart the CyberPanel service:

bash
sudo systemctl restart lscpd

How do I check if port 8090 is listening?

Run:

bash
sudo ss -tulpn | grep 8090

Expected:

text
0.0.0.0:8090

How do I test from Windows?

Open PowerShell:
powershell
Test-NetConnection cp.yourdomain.com -Port 8090
If it shows:
text
TcpTestSucceeded : True
then port 8090 is reachable. If it shows:
text
TcpTestSucceeded : False
then the firewall, OCI security rule, or IP restriction is blocking the connection.

Can I enable Redis/Memcached later?

Redis and Memcached will consume extra RAM. On your server, RAM is already low, so enabling them may push memory pressure higher and increase swap usage.

You already have the most important cache working:

text
x-litespeed-cache: hit

That means LiteSpeed page cache is working. For normal visitors, this gives the biggest performance benefit.

Best setup for your current servers

Keep this setup:

text
LiteSpeed Cache: ON
Object Cache: OFF
Redis: OFF
Memcached: OFF
Cloudflare Proxy: ON
Browser Cache: ON

This is the safest setup for a 1 GB RAM server.

Redis vs Memcached: which one if needed later?

If you ever decide to use object cache later, choose Redis only. Do not enable both Redis and Memcached.

Recommended priority:

text
First choice: Redis
Second choice: Memcached
Never both on 1 GB RAM

Redis is generally more useful for WordPress object caching.

When Redis can help

Redis may help if your site has:

text
Many logged-in users
WooCommerce
Membership system
Heavy admin dashboard
Many database queries
Dynamic uncached pages

But for a normal cached WordPress website, Redis may not noticeably improve public page speed.

What to monitor instead

Run this occasionally:

bash
free -h

Example Output:

text
     total  used  free  shared  buff/cache  available 
Mem: 956Mi  399Mi 71Mi  72Mi    485Mi       324Mi 
Swap:2.0Gi  463Mi 1.5Gi

If swap usage stays low/moderate and the site is fast, your setup is fine.

Also check LiteSpeed cache (Run it 2–3 times:):

bash
curl -s -o /dev/null -D - https://yourdomain.com | grep -i litespeed
curl -s -o /dev/null -D - https://yourdomain.com | grep -i litespeed
curl -s -o /dev/null -D - https://yourdomain.com | grep -i litespeed

Expected Output (If LS Cache Active):

text
x-litespeed-cache: miss 
x-turbo-charged-by: LiteSpeed
x-litespeed-cache: hit
x-turbo-charged-by: LiteSpeed
x-litespeed-cache: hit
x-turbo-charged-by: LiteSpeed

Was this article helpful?

Your feedback helps us improve.

Leave a Reply

Your email address will not be published. Required fields are marked *

Popular Tags

Find Ur Best-Fit Hosting

Answer a few quick questions about your website, traffic, and budget. We’ll match you with the right hosting—shared, cloud, managed WordPress, or VPS—in under a minute.

STEP 1 OF 19

What are you building?

STEP 2 OF 19

How many websites/apps will run on this hosting?

STEP 3 OF 19

Current monthly traffic (or best guess)?

STEP 4 OF 19

Traffic pattern / spikes?

STEP 5 OF 19

Database / services (select all)

STEP 6 OF 19

Primary audience location

STEP 7 OF 19

Expected growth in 6–12 months?

STEP 8 OF 19

How hands-on do you want to be with servers?

STEP 9 OF 19

Preferred stack management

STEP 10 OF 19

Required uptime SLA

STEP 11 OF 19

Security/compliance needs (select all that apply)

STEP 12 OF 19

Backups & recovery

STEP 13 OF 19

Performance priority

STEP 14 OF 19

Estimated compute needs

STEP 15 OF 19

Storage profile

STEP 16 OF 19

Budget per month (hosting only)

STEP 17 OF 19

Support expectation

STEP 18 OF 19

Built-ins desired (select all)

STEP 19 OF 19

Migration help