index.php file

Exploring WordPress.com, Domains, Plans, and the New AI Builder

Introduction

Today’s training was a big shift from pure development topics. We stepped into the WordPress.com ecosystem, which is completely different from self-hosted WordPress.org sites.
For anyone aiming to be a WordPress Support Engineer, this is a must-know area because so many users mix the two up.

Understanding WordPress.com vs WordPress.org

This is probably one of the most common confusions users have.
WordPress.com is a managed hosting platform built by Automattic where WordPress runs on their servers. WordPress.org is open-source software that anyone can install on their own hosting.

When users ask things like “Why can’t I install plugins on my Premium plan?”, the answer often lies here, only the Business plan and above on WordPress.com support plugin installations.

Helpful resources I went through:


New: Jetpack AI Website Builder

A fresh and exciting feature Jetpack AI Builder is now integrated into WordPress.com.
It helps users instantly create a professional-looking website or even generate a custom logo with AI assistance.

I took a look at the guides below, and it’s surprisingly beginner-friendly. It asks a few questions about the site’s purpose and then builds a base layout with relevant pages.
As a support engineer, the goal isn’t just to use it but to help users understand what it can and can’t do, especially those expecting “AI magic” to replace real customization.

Links I explored:


Domains – The Identity of Every Site

This part helped me understand how domains work inside WordPress.com — registering, connecting, transferring, and even renewing.
The platform gives a free domain for one year when someone buys an annual plan, which users often forget to renew later.

Common scenarios in tickets:

Each of these has a specific guide, and it’s crucial to point users to the right solution instead of explaining everything manually.

Key links I covered:


Plans, Payments & Account Handling

Every support engineer eventually deals with plan upgrades, renewals, and refunds.
Learning these processes helps us guide users confidently without escalating unnecessarily.

Examples include:

Key resources:


Email Setup (Google Workspace & Professional Email)

I also explored how users can connect Professional Email or Google Workspace to their WordPress.com domain.
This is an area where many users expect it to “just work automatically,” so understanding how to walk them through the DNS and MX record setup is key.

Guides reviewed:


Troubleshooting Section

Finally, there’s a massive collection of guides under Troubleshooting Category
I bookmarked this one since it’s basically a goldmine for any future support situation – login errors, editor issues, or domain propagation delays.

WordPress Theme Development, Multisite Setup, REST API & WP-CLI Quick Guide – Day 4

Introduction

Today’s training focused on some of the most important developer-level areas of WordPress:

I already have hands-on experience building custom WordPress themes. In fact, this very website you’re reading this on runs on a custom WordPress theme I developed from scratch. Still, revisiting the fundamentals helped me connect every layer of the WordPress stack.


1. Understanding WordPress Theme Structure

A WordPress theme includes both design files and PHP templates that control how content is displayed.
Typical files you’ll see inside any theme directory:

Docs: Theme Handbook

Minimal example

style.css
/*
Theme Name: Riffaz Me
Theme URI: http://riffaz.me
Author: Riffaz Aman
Author URI: http://riffaz.me
Description: A custom portfolio theme with a blog for showcasing your work.
Version: 1.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Tags: portfolio, blog, responsive, bootstrap
Text Domain: rif
*/
index.php
<?php get_header(); ?>


<div class="container">
    <?php if (have_posts()) : while (have_posts()) : the_post(); ?>
        <h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
        <div class="entry">
            <?php the_content(); ?>
        </div>
    <?php endwhile; endif; ?>
</div>

<?php get_footer(); ?>

2. WordPress Multisite – How Themes Work Differently

In a Multisite Network, themes aren’t installed individually per site.
They are installed once at the Network Admin level and then enabled for each site.

Key points:

Docs: WordPress Multisite Overview

In a Multisite network, themes are centrally managed install once, enable globally, then activate per site.

2.1 Creating and Using a Child Theme

A Child Theme is a lightweight theme that inherits all templates and functionality from another theme, known as the Parent Theme.
It lets you customize or extend your site without touching the parent’s code, so your changes remain safe when the parent theme updates.


When to Use a Child Theme


Basic Child Theme Structure

/wp-content/themes/
   ├── parent-theme/
   └── my-child-theme/
        ├── style.css
        └── functions.php

Example: style.css

/*
 Theme Name: Riffazme Child
 Template: riffazme
 Version: 1.0.0
 Description: Child theme for the Riffazme theme.
 Author: Riffaz
*/

Template must match the folder name of the parent theme exactly

functions.php

<?php
// Enqueue parent + child styles
add_action('wp_enqueue_scripts', function () {
    // Parent stylesheet
    wp_enqueue_style(
        'riffazme-parent',
        get_template_directory_uri() . '/style.css',
        [],
        wp_get_theme(get_template())->get('Version')
    );

    // Child stylesheet
    wp_enqueue_style(
        'riffazme-child',
        get_stylesheet_uri(),
        ['riffazme-parent'],
        wp_get_theme()->get('Version')
    );
}, 20);

Activating the Child Theme

  1. Zip your child theme folder (or upload via FTP).
  2. Go to Appearance → Themes → Activate “My Child Theme.”
  3. WordPress will automatically use templates from the child if they exist, otherwise fall back to the parent.

Key Benefit

You can safely update the parent theme anytime your customizations stay intact.


Docs: Official Child Theme Guide


3. REST API – Modern Access to WordPress Data

The REST API lets external apps, mobile clients, or even your own JavaScript communicate with your site data in JSON format.

Try these sample GET requests:

Add a quick custom endpoint

add_action('rest_api_init', function () {
  register_rest_route('my/v1', '/ping', [
    'methods'  => 'GET',
    'callback' => fn() => ['ok' => true, 'time' => time()],
    'permission_callback' => '__return_true',
  ]);
});

Visit /wp-json/my/v1/ping – We sould see the above custom JSON response.

Docs: REST API Handbook


4. WP-CLI – Command Line Power for WordPress

WP-CLI allows developers to manage WordPress installations directly from the command line, perfect for automation, debugging, and deployments.

Essential commands to try

wp --info
wp core version
wp plugin list
wp theme list
wp cache flush
wp user list
wp post list --post_type=page --fields=ID,post_title,post_status --format=table

Docs: WP-CLI Command List

Debugging & Core WordPress Development in Smart Way – Day 03

Introduction

Today’s focus was on debugging WordPress effectively and understanding the core parts of WordPress development that every support engineer must know.

I began by learning how to turn on debugging safely using constants in wp-config.php, and then explored three powerful helper plugins, Query Monitor, WP Crontrol, and User Switching to track performance issues, manage cron events, and reproduce user-specific bugs.

After mastering debugging, I moved into core WordPress development:

This day tied everything together showing how WordPress works under the hood, and how to quickly troubleshoot, extend, and optimize any site with professional-level tools.


01. Defining Debugging Constants in WordPress

When working as a support engineer or developer, debugging is your best friend — but it should always be enabled safely. WordPress allows you to control what errors appear and where they’re stored using a few simple constants inside wp-config.php.

Add the following lines above the comment /* That's all, stop editing! Happy publishing. */:

define( 'WP_DISABLE_FATAL_ERROR_HANDLER', true ); // WP 5.2 +: show real fatal errors while developing 

define( 'WP_DEBUG', true ); // turn on WordPress debug mode 

define( 'WP_DEBUG_DISPLAY', false ); // hide errors from the browser 

define( 'WP_DEBUG_LOG', true ); // log all errors to /wp-content/debug.log 

define( 'SCRIPT_DEBUG', true ); // load unminified core CSS and JS files

What Each Constant Does

ConstantPurpose
WP_DISABLE_FATAL_ERROR_HANDLERDisables WordPress’ built-in “white screen protection,” so you can view actual fatal errors while developing. (Only use this on local or staging environments.)
WP_DEBUGEnables all PHP notices, warnings, and errors for WordPress and plugins.
WP_DEBUG_DISPLAYHides errors from the frontend or admin area to avoid breaking layouts.
WP_DEBUG_LOGSaves all errors to /wp-content/debug.log, which can be opened in any text editor.
SCRIPT_DEBUGForces WordPress to use non-minified core files, making it easier to trace JS and CSS issues.

Where to View the Log

Open the file:
example.com/wp-content/debug.log

You can also use a plugin such as Log Viewer or Error Log Monitor to read this log directly from the dashboard.

02. Helper Plugins for Debugging in WordPress

There are certain WordPress plugins that make it much easier to debug PHP errors, actions, filters, enqueued scripts and stylesheets, and even HTTP requests.
In this section, we’ll go over three essential ones Query Monitor, WP Crontrol, and User Switching and see how each helps during development and troubleshooting.

PluginPurposeHow I Used It
Query MonitorShows PHP errors, database queries, HTTP requests, hooks & actions, scripts, and performance bottlenecks.Checked for slow database queries and heavy hooks on page load.
WP CrontrolLets you view and manage cron events and scheduled tasks.Disabled duplicate or unnecessary cron jobs during testing.
User SwitchingQuickly switch between users without logging out/in.Reproduced role-specific bugs (Subscriber vs Admin) safely.

Query Monitor

Query Monitor adds a complete developer tools panel inside WordPress.
It lets you inspect almost everything happening behind the scenes:

The plugin automatically adds a toolbar entry in the WordPress admin bar; click it to open detailed tabs for each section.

Why it’s useful
Query Monitor instantly shows slow database queries or heavy hooks, helping identify performance bottlenecks. It’s a must-have in every development or staging site.

Here’s a brief introduction about the plugin and what information it displays and where:

You can learn more on the plugin’s page

💡 Idea to Explore → Using Query Monitor to Identify Performance Bottlenecks

If your WordPress site feels slow or inconsistent, Query Monitor can help you see what exactly is taking time:

  1. Activate the plugin, open any front-end page, and then open the admin bar → “Query Monitor.”
  2. Go to the Queries tab:
    • Sort by Time to find the slowest SQL queries.
    • Look for repeating queries or ones touching custom tables.
    • Note the calling function (helps find which plugin/theme is responsible).
  3. Check Hooks & Actions → shows how many callbacks each hook has. Too many actions on init or wp_head can slow down loading.
  4. HTTP Requests tab → see external API calls that may delay page rendering.
  5. Scripts & Styles tab → identify plugins enqueueing large CSS/JS files on every page.
  6. Summary panel → total queries, peak memory usage, PHP execution time.

Goal:

Example

WP Crontrol

WP Crontrol allows you to view, manage, and debug WordPress Cron events directly from the admin area.
From its interface you can:

Why its useful
This plugin helps verify whether scheduled tasks (like emails, imports, or backups) are running properly. A common cause of “nothing happens” issues in WordPress.

You can read more about WP Crontrol on its plugin page.

User Switching

User Switching lets you instantly swap between user accounts without logging out and back in.
Normally, testing as a specific user means resetting passwords and logging in manually; this plugin saves all that time.

Helpful when:

Just click Switch To under any user in Users → All Users, and you’ll be logged in as them instantly. A single click restores your original admin session.

You can check more details on the User Switching plugin page.

I also went through (quickly) xDebug and JavaScript with Chrome DevTool for language specific debugging


After completing the debugging and helper plugins session, I took a short lunch break.
Once back, I moved on to the Basic Plugin Development module starting with how plugins are structured, how to register them properly, and how WordPress hooks (actions and filters) connect everything behind the scenes.


03. Basic Plugin Development – Quick Start

Before diving into the deeper APIs, I focused today on understanding how plugins are structured and how hooks connect everything inside WordPress.

I began with a quick hands-on experiment using an MU-plugin to understand how WordPress executes hooks, and then gradually explored how actions and filters form the core of every plugin.


Understanding Hooks with an MU-Plugin

Before building a regular plugin, I tested how WordPress triggers hooks internally by creating a small MU-plugin (Must-Use Plugin).
MU-plugins load automatically on every request, making them perfect for experiments and debugging.

Steps followed:

  1. Created a new folder: wp-content/mu-plugins/
  2. Added a file: wp-content/mu-plugins/hook-watcher.php

hook-watcher.php

<?php 
/** 
* Plugin Name: Hook Watcher (MU) 
* Description: Logs every hook that fires — for learning purposes only. 
*/ 

if ( ! defined( 'ABSPATH' ) ) exit; 

// Extremely noisy — use only on local environment 
add_action( 'all', function ( $hook ) { 
 error_log( $hook ); } 
);

With WP_DEBUG_LOG enabled, this script records every WordPress hook into /wp-content/debug.log.

What I Observed

Opening the log showed a long list of hook names like:


🧩 3. Hooks – Actions and Filters

Hooks are the backbone of WordPress extensibility. They allow plugins, themes, and even core to “talk” to each other.

TypeWhat It DoesExample
Action HookRuns custom code at a specific point.add_action( 'init', 'my_function' );
Filter HookModifies data before it’s displayed or saved.add_filter( 'the_content', 'my_filter' );

🟢 Actions → “Do something.”
🟢 Filters → “Change something.”


Testing a Global Filter

To understand how powerful filters are, I tried adding this inside my MU-plugin:

add_filter( 'render_block', function( $block ){ 
  return '<img src="https://picsum.photos/' . rand(200,400) . '" />'; 
});

Effect:
This replaces every rendered block on the site with a random image from Picsum.
It clearly shows how a filter can intercept and modify the final output before display.
(And yes, remove this after testing 😄)


💡 Ideas to Explore

1️⃣ What is the purpose of add_action() and how is it implemented?
add_action() attaches your custom function to a hook so it runs at a specific moment.

add_action( 'init', 'register_custom_post_type' );

Use when you want to run code (register a CPT, enqueue scripts, schedule tasks, etc.).


2️⃣ How does add_filter() work, and when would you use it?
add_filter() modifies or formats data before it’s output or saved.

add_filter( 'the_title', 'prefix_modify_title' ); 
  function prefix_modify_title( $title ) { 
  return '👉 ' . $title; 
}

Use when you need to alter text, markup, or data dynamically.


3️⃣ What’s the difference between do_action() and apply_filters()?

FunctionPurposeExample
do_action()Executes all callbacks added with add_action()do_action( 'init' );
apply_filters()Passes a value through all add_filter() callbacks and returns it$title = apply_filters( 'the_title', $title );

4️⃣ How can you prioritize Actions or Filters?
Both accept a priority number (default is 10).
Lower numbers run earlier; higher numbers run later.

add_action( 'init', 'early_function', 5 ); 
add_action( 'init', 'late_function', 20 );

Use priority to control the order when multiple functions are attached to the same hook.


✅ Summary

Together, these form the core foundation of how every WordPress plugin works.

04. Custom Post Types and Taxonomies – Quick Run

With limited time left in the day, I did a short but practical run on Custom Post Types (CPTs) and Custom Taxonomies. Two features that make WordPress flexible beyond posts and pages.


1. Custom Post Types

A Custom Post Type lets you create new types of content. For example, Books, Projects, or Reviews, each with its own editor and structure.

You register a CPT using the register_post_type() function, usually inside a plugin or in functions.php.

Example:


function create_books_cpt() {
    $labels = array(
        'name'          => 'Books',
        'singular_name' => 'Book',
        'add_new_item'  => 'Add New Book',
        'edit_item'     => 'Edit Book',
        'menu_name'     => 'Books',
    );

    $args = array(
        'public'        => true,
        'has_archive'   => true,
        'rewrite'       => array( 'slug' => 'books' ),
        'supports'      => array( 'title', 'editor', 'thumbnail', 'excerpt' ),
        'show_in_rest'  => true, // enables Gutenberg & REST API
        'labels'        => $labels,
        'menu_icon'     => 'dashicons-book-alt',
    );

    register_post_type( 'book', $args );
}
add_action( 'init', 'create_books_cpt' );

Key Arguments and Labels in register_post_type()

ParameterPurpose
labelsDefines all text displayed in the admin for this CPT (name, add new, edit, etc.).
publicMakes it visible on the frontend and admin menu.
has_archiveCreates an archive page like /books/.
rewriteDefines custom URL slug for the CPT.
supportsEnables features like title, editor, thumbnail, etc.
show_in_restEnables block editor and REST API support.
menu_iconSets a custom icon in the dashboard menu.

👉 In short: labels control the text users see; args control how the post type behaves.


2. Custom Taxonomies

A taxonomy groups related posts together. For example, genres for books or skills for projects.
WordPress includes two default taxonomies: Categories and Tags, but you can create your own.

Example:

function create_book_genre_taxonomy() {
    register_taxonomy(
        'genre',
        'book',
        array(
            'label'        => 'Genres',
            'rewrite'      => array( 'slug' => 'genre' ),
            'hierarchical' => true, // true = like categories, false = like tags
            'show_in_rest' => true,
        )
    );
}
add_action( 'init', 'create_book_genre_taxonomy' );

When to Create a Custom Taxonomy

Create a custom taxonomy when you need to organize or filter a custom post type beyond the default categories or tags.
Examples:


✅ Summary

05. WP_Query – Custom Queries in WordPress

I also did a quick review of WP_Query, the main class that controls how WordPress retrieves posts from the database.

What is WP_Query?

WP_Query is the core query class that WordPress uses to fetch posts, pages, or custom post types based on specific conditions — for example, only posts from a certain category, author, or date range.

It gives developers complete control over which posts are displayed and in what order.

Example:

$query = new WP_Query( array(
    'post_type'      => 'book',
    'posts_per_page' => 5,
    'orderby'        => 'date',
    'order'          => 'DESC',
) );

if ( $query->have_posts() ) {
    while ( $query->have_posts() ) {
        $query->the_post();
        the_title( '<h3>', '</h3>' );
    }
    wp_reset_postdata();
}

How WP_Query Differs from get_posts() and query_posts()

FunctionDescriptionWhen to Use
WP_QueryThe main, flexible class for custom queries. Returns a query object you can loop through safely.Use in custom templates, plugins, or shortcodes.
get_posts()A simplified wrapper for WP_Query that just returns an array of posts (not the full query object).Use when you only need raw post data and won’t run a loop.
query_posts()A deprecated approach that modifies the main query directly (can break pagination or global query).Avoid using this. Prefer pre_get_posts or a custom WP_Query.

✅ Summary

In short:

Use WP_Query when you want full control, get_posts() when you just need data, and skip query_posts() entirely.

And then I scrolled through (Core APIs):

If you are up to learn deep plugin development you can learn them from WordPress codex.

Then I created a plugin folder structure using the WordPress Plugin Boilerplate Generator which was suggested in the assignment section.

With that I completed the quiz as well.

Learn VS Code, Z Shell, Git and Web Basics – the Simple Way for WordPress Support – Day 02

Introduction

As part of my WordPress Technical Support Engineer Training, after completing the environment setup on Day 1, today’s focus was to install and configure a full-fledged Integrated Development Environment (IDE) using Visual Studio Code, set up Z Shell (Oh My Zsh) for a faster command-line workflow, and explore the basics of Git and SVN.

Tools Installed & Configured

1. Installing Visual Studio Code

1️⃣ Downloaded and installed VS Code from https://code.visualstudio.com.

2️⃣ Installed essential extensions for WordPress development: https://marketplace.visualstudio.com/items?itemName=WordPressPlayground.wordpress-playground

We can install the following extensions too if we need:

3️⃣ Verified installation via terminal:

code --version

4️⃣ Opened the local project folder directly in VS Code:

code .

2. Using WordPress Playground Extension

The WordPress Playground extension lets you spin up a full WordPress site inside VS Code without installing PHP or MySQL.

Steps:

1️⃣ Open VS Code → Extensions → Search WordPress Playground → Install.
2️⃣ Click the WordPress icon in the Activity Bar.
3️⃣ Select Start WordPress Server.
4️⃣ It opens your project in a browser with a live WP environment. This is perfect for quick plugin or theme testing.

” If the extension doesn’t start on Windows, keep LocalWP as a fallback that we created in day 1.

3. Setting Up Z Shell (Zsh) and Oh My Zsh

To improve terminal speed and readability, I installed Zsh and configured Oh My Zsh for plugins and themes.

Installation commands:

sudo apt install zsh -y chsh -s $(which zsh)

Install Oh My Zsh:

sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

For windows:

Zsh is does not natively support Windows. Instead, we can try Oh My Posh.

In short:

winget install JanDeDobbeleer.OhMyPosh -s winget

Recommended plugins (I did not try these but good if you want to explore a bit):

Feature / AspectZsh (Z Shell)Oh My Zsh
TypeCommand-line shell (replacement for Bash)Framework / configuration manager for Zsh
PurposeProvides an enhanced shell environmentSimplifies managing Zsh configuration, themes, and plugins
InstallationInstalled as a standalone shell using package manager (sudo apt install zsh)Installed after Zsh via a curl or wget script
Default FeaturesBasic improvements over Bash: better tab completion, spelling correction, globbingShips with 100+ themes and 200+ plugins pre-configured
Configuration FileUses ~/.zshrc (manual editing needed)Also uses ~/.zshrc, but auto-populated with friendly defaults
CustomizationFully manual (you add aliases, prompt styles, functions yourself)Managed via simple edits — enable/disable plugins and themes easily
ThemesNone by default (plain prompt)Comes with many built-in themes like robbyrussell, agnoster, powerlevel10k
PluginsMust install and configure manuallyIncludes plugin system — just add names in plugins=(git z ...)
Ease of UseRequires manual setup and knowledge of config syntaxReady-to-use immediately after install; beginner-friendly
PerformanceSlightly faster since it loads fewer scriptsSlightly slower at startup because of extra plugins and themes
Best ForPower users who want full controlDevelopers who want a quick, beautiful, and feature-rich shell
Example Installationsudo apt install zshsh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
Zsh vs Oh My Zsh

4. Introduction to Git and SVN

I explored how Git and SVN work, focusing on core commands.
I already covered Git and Git CLI installation yesterday here

Git basics:

git init

git clone <repo-url>

git add .

git commit -m "Initial commit"

git branch feature

git checkout feature

git merge feature

git push origin main

SVN overview: SVN is centralized version control, while Git is distributed.
Understanding this helps when working with older WordPress plugin repositories that still use SVN for releases.

Becoming a WordPress Technical Support Engineer – Day 0

Real-World Onboarding Series (Day 0) by an experienced WordPress technical support engineer


I recently joined a leading WordPress agency that provides structured onboarding for Support Engineers. These posts are inspired by the training steps from that process.


Why this series?

I’ve worked with WordPress for 10+ years as an engineer and support specialist.
I’m starting a focused, 14-day series to document how a professional WordPress Technical Support Engineer works from local setup and debugging to coding standards, security, and communication with clients.

It’s a real-world workflow you can follow to prepare for agency work, plugin/theme support roles, or high-quality freelance support.

Who is it for?

What you’ll learn (14-day roadmap)

Day 1 – Setting up a reliable local environment and using debugging tools (WP-CLI, Query Monitor, logs)
Day 2 – WPCS & PHPCS: clean, review-ready code
Day 3 – Security basics: sanitizing, escaping, nonces, safe queries
Day 4 – WordPress Core overview: hooks, filters, plugin/theme loading order
Day 5 – WP_Query & request lifecycle: tracing issues the right way
Day 6 – Gutenberg & FSE: block troubleshooting, patterns, theme.json basics
Day 7 – Gutenberg deep-dive: common editor bugs & fixes
Day 8 – WordPress.com vs self-hosted: hosting realities, staging, backups
Day 9 – Performance mindset: caching, images, asset loading, Core Web Vitals
Day 10 – Top 10 support cases & how to triage fast (plugins, themes, PHP versions)
Day 11 – Communication & tickets: reproducible steps, summaries, hand-offs
Day 12 – Week 1 recap: what to keep, what to automate
Day 13 – Week 2 recap: block editor, performance, workflows
Day 14 – Final checklist & resources to keep improving

How to use this series

What you’ll need

My promise

I’ll keep each day short, practical, and written in simple English.
You’ll get clear steps, tools, and checklists that you can reuse in real client work.

Next post: Day 1 – Setting Up a WordPress Support Environment & Debugging Like a Pro.

Simplified VPS Management: Installing LiteSpeed and CyberPanel Made Easy!

– A guide for non-technical users

What is a VPS?

A VPS, or Virtual Private Server, is like having a condo in a building. Even though you share the building with others, you have your own space that you can decorate and use however you like. Similarly, a VPS shares a physical computer with other VPSs, but you get your own portion of that computer that no one else can touch. This gives you more control and room to do things compared to sharing a space, like in shared hosting, which is more like living in a crowded dorm room.

Typically, this does not come with a control panel like cPanel. You will have to install and set up everything from scratch, including control panels like cPanel or CyberPanel.

Most VPS providers offer CentOS as the default operating system installed on their servers. When you receive your VPS, it will already be running CentOS within a Linux environment. This setup is where you’ll need to install applications like CyberPanel.

This is a fresh VPS account with CentOS installed.

This is a fresh VPS account with CentOS installed

What is a CyberPanel?

CyberPanel is a web hosting control panel, much like a dashboard that helps you manage websites on your server easily, without needing to use complex command lines. Think of it as a remote control for your TV, but instead of controlling a TV, it controls your server.

With CyberPanel, you can create and manage websites, set up and manage email accounts, handle domains, secure your websites with free SSL certificates, and more, all through a simple, user-friendly interface. This makes it an excellent tool for people who aren’t very technical but need to manage web hosting or servers.

If you look at the screenshot in the previous section, you can see there is no control panel to manage or create websites. Therefore, we will need to install CyberPanel.

Why CyberPanel? Not cPanel?

Choosing between CyberPanel and cPanel for managing a VPS can be compared to choosing between different types of remote controls based on what features they offer and how easy they are to use. Here’s a simplified explanation focusing on CyberPanel, especially considering its compatibility with LiteSpeed, Linux, and VPS:

CyberPanel:

cPanel:

In summary, if you are using a VPS with Linux and LiteSpeed, CyberPanel offers a cost-effective, user-friendly, and well-integrated solution for managing your server and websites, making it a compelling choice over cPanel for many users, especially those looking for a budget-friendly option.

What is LiteSpeed?

LiteSpeed is a type of web server software, which is a program that helps deliver content from websites to your browser. Think of it like a waiter at a restaurant. When you order a dish, the waiter goes to the kitchen to get it and then brings it to your table. Similarly, when you request a webpage, LiteSpeed retrieves the website’s data (like text, pictures, and videos) and sends it to your internet browser so you can see the website.

LiteSpeed is known for being very fast and efficient, which means it can serve up web pages quicker than some other web servers. It’s particularly good at handling lots of visitors at the same time, making it a popular choice for websites that expect a lot of traffic or want to load quickly for their visitors.

For setting up CyberPanel on a VPS with Ubuntu and LiteSpeed, you’ll need to have a few prerequisites in place. Here’s a detailed list of what you should have ready before starting the installation process:

Prerequisites for Installing CyberPanel in LiteSpeed Server:

  1. A VPS with an Operating System Installed:
    • Litespeed server can be installed on Linux kernels 3.0 or higher, CentOS 7 or later, Ubuntu 18.04 or later, Debian 9 or later, and FreeBSD 12.04 or later. However, the latest version of CyberPanel does not support CentOS 7 (as of the time I am writing this, Apr 2024). Therefore, for compatibility with both LiteSpeed and the latest CyberPanel, I am installing Ubuntu as my operating system for the VPS. You can refer to the following links for more information on the system requirements:


LiteSpeed requirements: https://docs.litespeedtech.com/lsws/#operating-system
CyberPanel requirements: https://community.cyberpanel.net/docs?topic=82

Option to install an OS in a famous VPS hosting plan backend

  1. Root Access:
    • You will need root access to your VPS. This allows you to perform administrative tasks and install software. You should have the root username and password ready. You can find that in the email that you received during your VPS purchase.
  2. SSH Client:
    • For Windows Users: Download and install an SSH client like PuTTY. This will allow you to securely connect to your VPS from your Windows computer. You can download PuTTY from https://www.putty.org/, but I will be using MobaXterm throughout this tutorial, which is available at https://mobaxterm.mobatek.net/. The Bash commands are the same for both.
    • For macOS Users: macOS comes with a Terminal application that can be used to SSH directly into your VPS.
  3. Stable Internet Connection:
    • A reliable internet connection is necessary to download CyberPanel and other necessary software updates during the installation process.
  4. LiteSpeed License (Optional):
    • If you plan to use the enterprise version of LiteSpeed Web Server, you need to purchase a license. However, CyberPanel works with both OpenLiteSpeed, which is free, and the enterprise version of LiteSpeed.
  5. At least 2 GB of RAM:
    • Your VPS should have a minimum of 2 GB of RAM to run CyberPanel effectively, although more may be recommended based on your expected server load and the number of websites you plan to host.
  6. Minimum 10 GB of Disk Space:
    • Ensure that your VPS has at least 10 GB of available disk space. This is necessary to install CyberPanel and any websites or applications you want to host.


Once these prerequisites are in place, you can proceed with the installation of CyberPanel, setting up a stable and powerful hosting environment on your VPS.

Step 1: Connect to Your VPS

Start Local terminal in MobaXterm

ssh root@your_vps_ipssh root@your_vps_ip

Step 2: Update the Packages

yum check-update
yum update

Wait until the system finishes updating the packages. During this process, it may prompt you for confirmations and ask you to choose ‘yes’ or ‘no.’ Simply type ‘Y’ or ‘N’ and press the Enter key when prompted

Step 3: Run the Installation Script

Now that you are logged in to your server and updated the necessary packages you can install CyberPanel and LiteSpeed.

Type in the command below. It will start an automatic installation process. You’ll be asked some questions about which LiteSpeed version and extras you want to install. This command checks if curl is installed; if not, it tries wget to download and run the CyberPanel installation script.

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

Step 4: LiteSpeed Version

Choose the LiteSpeed version you want to install. If you choose LiteSpeed Enterprise, make sure you have a license key. While it’s free for one domain, you still need to get the key. Check the pricing table to decide on your preferred plan: https://litespeedtech.com/products
If you choose LiteSpeed Enterprise, you will be prompted to enter your serial number. If you don’t have a license, you can use a trial license by typing ‘TRIAL’ if the server hasn’t used one before. 


I’m choosing OpenLiteSpeed because it’s sufficient for demonstrating the tutorial steps and is ideal for beginners.

Step 5: Select Options and Add-ons

You will be presented with a series of prompts for different options and add-ons that are available. These include:

For all subsequent prompts, you can choose the ‘Default’ option. When prompted for the CyberPanel version, simply press the ‘Enter’ key to install the latest version. You don’t need to specify a particular version unless you have a specific requirement.

Step 6: Installation

The installation process will kick off automatically and will take approximately 5-10 minutes. The speed of your server will determine how quickly this will be completed.

By the end of the installation process, you will get the details to log in to your CyberPanel including your randomly generated Cyber Panel password.

Let’s say your IP address of the VPS is  12.12.12.21then your CyberPanel login URL will be 12.12.12.21:8090
You can log in there using the panel username and panel password that you get in the last step of the installation. 

Step 7: Restart the Server

After entering the login details, you’ll be prompted:

Would you like to restart your server now? [y/N]:

Enter ‘y’ to restart immediately. Alternatively, you can enter ‘reboot’ later after completing any other desired operations.

Step 8: How to Confirm LiteSpeed was installed correctly or not.

  1. Log in to the cyber panel using the credentials you got by the end of the installation
  2. Scroll down to the section Server > Server Status
  3. Click on LiteSpeed Staus 

  1. You can see your LiteSpeed server status there

If you’re still connected to SSH and want to use another one-liner of Bash code to check this, run the following command:

/usr/local/lsws/bin/lswsctrl status

This command will display the current status of the LiteSpeed web server. If LiteSpeed is running, it will show as “running”; if it’s stopped, it will show as “stopped”.
If you see any of these messages that means your VPS has LiteSpeed webserver now.

Congratulations! You have successfully installed CyberPanel on your Ubuntu or on the the OS you’ve selected with LiteSpeed. You are now ready to host your websites, set up email accounts, and much more. CyberPanel makes web hosting easy and efficient, even for non-technical users, while LiteSpeed helps deliver website resources faster.

Step 9: How to make the most from LiteSpeed Web Server?

Once you’ve successfully installed the LiteSpeed webserver along with CyberPanel, there are several steps you can take to ensure that you are making the most out of its capabilities. LiteSpeed is known for its performance and efficiency, especially in handling high traffic and reducing server load. Here are some recommendations to optimize and secure your setup. These steps may require further explanation for better understanding. I plan to create additional blog posts and tutorials soon to explain these concepts in an easier way for non-technical users

1. Enable LSCache

LiteSpeed’s caching solution, LSCache, is one of the most effective tools to enhance your website’s loading speed. If you are using CMSs like WordPress, Joomla, or Drupal, make sure to install the respective LSCache plugins for those applications.

You can read more here: https://docs.litespeedtech.com/lscache/ 

2. Optimize PHP Settings

Adjust the PHP settings through CyberPanel to match the needs of your applications:

3. Configure SSL/TLS

Securing your website with HTTPS is crucial. LiteSpeed makes it easy to set up SSL/TLS:

4. Set Up HTTP/3

LiteSpeed supports HTTP/3, the latest version of the HTTP protocol, which provides improved performance. Make sure it’s enabled to enhance the loading times for users on supported browsers.

5. Utilize Web Server Security Features

LiteSpeed has built-in security features that help protect your server:

6. Implement Content Delivery Network (CDN)

Integrating a CDN can significantly reduce the load on your LiteSpeed server and improve global access speeds:

You can read further here: https://www.quic.cloud/ 

7. Enable GZIP/Brotli Compression

LiteSpeed supports both GZIP and Brotli compression. Enabling these can reduce the size of the data sent from your server to the user, which improves load times and reduces bandwidth usage.

8. Monitor Server Performance

Regular monitoring of your server’s performance can help identify potential issues before they become serious problems:

9. Keep Software Up to Date

Ensure that your LiteSpeed server, CyberPanel, and all applications (especially CMSs) are regularly updated to the latest versions. This helps in maintaining security and performance.

10. Configure Backups

Set up regular backups for your server to prevent data loss in case of hardware failure or security breaches. CyberPanel offers easy options for scheduling backups.

Implementing these steps will help you maximize the efficiency, performance, and security of your LiteSpeed webserver. Each step contributes to a robust and responsive web hosting environment, providing a better experience for both you and your visitors.


Ps:

If you’re interested in my expertise for your business or projects, or if you would like to hire me full-time or part-time you can reach me using the contact form located at the bottom of this site.

How WordPress Expertise Can Elevate Your Digital Marketing Game!

If you’re a digital marketer working in a small or startup company, you might find yourself handling everything from graphic design and #scriptwriting to video shooting and editing, not to mention creating SEO-friendly #websites. Essentially, you’re doing the work of an entire team or department on your own. Yet, often, you’re compensated with a salary that reflects just a single role. But that’s a story for another time. 🙂

Normally, creating a #website or outsourcing the task can be quite costly. However, if you have at least a basic understanding of how to create a WordPress site, you can reallocate that budget elsewhere.

I’m here to help you grasp the fundamentals of #WordPress site creation, and I’ll guide you through crafting the perfect WordPress site. To achieve this, I will be creating a series of tutorial blog posts dedicated to WordPress websites.

In this post, we’ll explore how mastering WordPress can benefit a digital marketer or enhance your skills in the digital marketing field.

Diving into WordPress might just be the game-changer you need, even if you’re not a coding guru. Let’s explore how adding WordPress skills to your repertoire can skyrocket your credibility and value in the digital #marketing sphere.

1. Beyond the Developer Tag

It’s an open secret in our industry: some web designers and WordPress agencies boast about being engineers and developers when, in reality, they’re leveraging the same non-developer WordPress skills we’ll explore. These skills are powerful, enabling you to create, optimize, and manage websites without deep coding knowledge.

2. Empowerment and Independence

By mastering these WordPress skills, you’ll not only boost your marketing strategies but also bring significant cost savings and efficiency improvements to your organization. Imagine cutting down on external consultancy fees or reducing the time spent waiting for technical tweaks. Yes, these skills can make that possible!

3. A Bridge Between Technical and Creative

Understanding WordPress bridges the gap between technical know-how and creative marketing. You’ll gain insights into the nuts and bolts of web functionality, which can enrich your strategic thinking and enable you to craft more effective campaigns.

4. Enhanced Collaboration

When you speak the language of WordPress, you can communicate more effectively with developers and designers. This synergy can lead to more cohesive and innovative digital projects, amplifying your marketing results.

5. Trust and Credibility

When clients or employers know you can handle WordPress, they’ll see you as a versatile and resourceful digital marketer. This added layer of trust enhances your professional image and can open doors to new opportunities and collaborations.

6. Stay Ahead of the Curve

WordPress is ever-evolving, with new features and plugins constantly emerging. By staying up-to-date, you can harness the latest tools to keep your marketing strategies fresh and effective, setting you apart from the competition.

7. Cost-Effective

By managing WordPress sites, you can cut down on outsourcing costs for your clients or your organization, providing value and demonstrating your commitment to maximizing resources.

8. The SEO Advantage

A solid grasp of WordPress means you can directly implement SEO best practices, ensuring that your content reaches its target audience effectively and enhances your overall marketing efforts.

So, dear digital marketers, by embracing WordPress, you’re not just adding another skill to your CV—you’re empowering yourself with a versatile tool that can enhance every facet of your digital marketing strategy, making you a more autonomous, innovative, and valuable professional in the digital realm.

A Word of Encouragement

Now, here’s something important to remember: even if you arm yourself with these skills and start making a tangible impact, you might still encounter skepticism. Some bosses (not leaders), especially those fixated on numbers or lacking a deep understanding of digital marketing nuances, might not immediately see your value. If you find yourself in this situation, remember – their perception does not define your worth or the effectiveness of your skills.

Remember, in a world where some might not recognize your contributions, your knowledge, and ability to adapt and save resources are invaluable assets. If someone who’s more about spreadsheets than innovation fails to see your value know that it’s their limitation, not yours.

Stay empowered, stay innovative!

Are you a digital marketer or a WordPress expert? How are you utilizing these skills in the digital marketing realm? Let me know in the comments section.


Ps:

If you’re interested in my expertise for your business or projects, or if you would like to hire me full-time or part-time you can reach me using the contact form located at the bottom of this site.

Contact Me

Let's Connect

How can I be useful to you?

I am currently looking for a full-time remote job. In the meantime, I am also available for any freelancing work within my expertise, which you can find in my contact form

** If you are considering employing me for a traditional office job, I would be open to it if offered a fair salary and if the job is located in a country I prefer.


128 City Road, London, EC1V 2NX, UNITED KINGDOM.