Blog

  • How to Install New Relic Monitoring on RunCloud

    How to Install New Relic Monitoring on RunCloud

    What if you could spot and fix critical errors in your PHP application before your users even notice?

    If you manage a PHP application on a RunCloud server, integrating a powerful monitoring tool is the fastest way to identify performance bottlenecks and eliminate bugs. New Relic provides an all-in-one solution for both server and application monitoring that offers a single dashboard to view resource usage, analyze logs, and track application health.

    In this step-by-step guide, we will show you exactly how to integrate New Relic with your server to begin monitoring your PHP applications, so you can spend less time debugging and more time building.

    Let’s dive right in!

    Steps to Integrate New Relic on Ubuntu Servers to Monitor PHP Applications

    In this section, we will provide step-by-step instructions for RunCloud users to manage and monitor their server infrastructure, logs, and data using New Relic.

    Prerequisite: Sign Up For a New Relic Account

    Before we can install New Relic on your server, you’ll need to create a New Relic account. Don’t worry about any paid plans, the free plan is perfectly sufficient for the purposes of this tutorial.

    Step 1: Select Monitoring Method

    After logging in to your New Relic account and selecting “Integrations & Agents” > “Data source”, you will be prompted to choose your data collection method. To monitor your RunCloud servers, select the “On a host (tar archive)” button. This is a generic installation that is highly compatible with various server setups.

    New Relic Dashboad

    Step 2: Enter Your Credentials

    You will need to provide your New Relic license key and user key. These keys link the monitoring agent to your account. Enter the required keys in the respective fields to proceed. If you don’t have the keys, click the “Create a new key” button.

    Suggested read: How to monitor web app and CPU Usage

    Step 3: Check Prerequisites

    Before installation, verify your server’s installed PHP version, as New Relic supports multiple versions. Run the provided command to check your PHP installation and ensure compatibility. RunCloud servers support multiple PHP versions, and you can find the location of your PHP installation by reading the PHP Cheat Sheet.

    Step 4: Download the Tar Distribution

    Run the provided command in your SSH terminal to find the appropriate tar archive for your server’s operating system. The file should be named something like newrelic-php5-11.10.0.24-linux.tar.gz.

    Enter the file’s name in the provided textbox, which will automatically generate a curl command that you can execute on your server to download the file.

    Step 5: Install the PHP Agent

    Once the download is complete, execute the provided command on the next page to perform the following steps:

    1. Decompress the downloaded tar archive.
    2. Change the directory to the newly created folder.
    3. Run the installation script with your New Relic credentials.

    Step 6: Configure the PHP Agent

    To properly link your application with New Relic, you must configure the agent:

    1. Name your application: Use the same name as your web application. This allows New Relic to automatically find the correct php-fpm process.
    2. Configure the agent: Run the provided newrelic-install script with your application name. This command will configure all PHP apps on your host to report to a single APM entity unless you configure them separately.

    Step 7: Restart Your Application

    You must restart your web server services for the configuration changes to take effect.

    1. Restart your services: Use the appropriate command for your server setup, for instance, systemctl restart php82rc-fpm for PHP 8.2 FPM.
    2. Send data to New Relic: To manually initialize the agent and ensure it starts sending data, run the command php -r 'phpinfo(INFO_GENERAL);'.

    Step 8: Optional – Connect Logs and Infrastructure

    You can connect infrastructure metrics and logs to get a comprehensive view of your server. Run the provided curl command to install the necessary components. If you have already performed this step for another web application on the same server, you can skip it.

    Step 9: Test the Connection

    After completing the installation and configuration, test the connection to verify that your agents are reporting correctly to New Relic. The status for the PHP agent should show “Successful,” which indicates that the agent is installed correctly.

    Reviewing New Relic Dashboard

    And that’s it – you’re all set! Your New Relic account will now be collecting data and monitoring your server. You should be able to see your server metrics, along with any additional monitors that you have installed in the New Relic dashboard.

    If you have a general purpose web application then you can track its metrics in the “APM & Services” section. There you can see error rates, logs and set alerts to notify you in case of a failure.

    If you are running a website then you can take advantage of “Browser” monitoring functionality, which tracks your website’s Core Web Vitals.

    And then, once you’ve successfully logged in – run the installation command provided in New Relic’s dashboard which will look something like this:

    After Action Report

    Using a server monitoring platform such as New Relic will allow you to quickly identify and resolve issues that affect your website’s performance. You can set up real-time monitoring and alerts to proactively assess potential problems that can cause downtime.

    Integrating New Relic with RunCloud can provide you with invaluable insights into your server’s performance and help you optimize it for better speed and reliability. By following the above steps you can easily set up New Relic to monitor your server’s metrics, including CPU usage, memory consumption, and network traffic.

    Not a fan of managing your own servers?

    This is exactly why we built RunCloud.

    Painless server configuration that automates all of this so you don’t need to spend hours figuring it out – get started with RunCloud today & get up and running in minutes.

    Have any other questions, or already using New Relic to monitor your web applications? Let us know & join the conversation by leaving a comment below. 💬

    New Relic and RunCloud FAQs

    How do I restart the correct PHP-FPM service on my RunCloud server?

    On a RunCloud server, PHP-FPM services are named according to their version, such as php82rc-fpm for PHP 8.2. To restart the correct service, use the command sudo systemctl restart phpXXrc-fpm, replacing XX with your specific PHP version number.

    Where can I find my New Relic license and user keys?

    Your New Relic license and user keys are provided during the guided installation process within your New Relic account. You can also find your license key under ‘API keys’ in your account settings.

    Do I need to connect infrastructure and logs if I only want to monitor my application’s performance?

    While not strictly required for application performance monitoring (APM), connecting your infrastructure and logs is highly recommended. Correlating your application’s performance with server metrics like CPU usage and memory provides a more complete picture, which helps in diagnosing issues more effectively.

    How can I confirm that the New Relic agent installation was successful?

    After completing all the installation steps, you can use the “Test connection” feature in the New Relic setup guide. The PHP agent’s “Successful” status confirms that it is properly configured and will report data to your account.

    Why should I use New Relic to monitor my RunCloud server?

    New Relic provides powerful performance monitoring and observability for your applications and server infrastructure. Integrating it with your RunCloud-managed server lets you gain deep insights into your PHP application’s performance, track down errors, and monitor server health to ensure optimal operation.

  • How to Migrate Your Server with (Near) Zero Downtime

    How to Migrate Your Server with (Near) Zero Downtime

    Server migration doesn’t have to be stressful. Whether you’re upgrading hardware, switching providers, or changing location, the process should be strategic, not risky.

    Server migrations are necessary for any growing application to move to more powerful hardware, a better network, or a more strategic geographic location. However, this migration often requires some downtime to move things over successfully.

    At RunCloud, we believe migrating your entire infrastructure shouldn’t be a gamble. It should be a strategic, controlled, and predictable process.

    In this guide, we’ll provide you with step-by-step instructions for moving your servers with minimal, and in many cases, virtually zero, user-facing downtime.

    Let’s get started!

    Phase 1: Preparing For Server Migration

    You might already know this, but the key to a successful migration is 90% preparation. Rushing this phase is the single most common cause of failure. Follow the steps below to start the migration process:

    Configure DNS TTL

    Your Domain Name System (DNS) records are the internet’s address book. When users type your-app.com, DNS tells their browser which server IP to connect to. Most computers store this information for an extended period to avoid making the same requests repeatedly. This isn’t a problem as these records are seldom updated. However, you will need to update these records when migration starts.

    Therefore, at least one week before your planned migration, you must lower the Time-To-Live (TTL) value on your relevant DNS records (typically the ‘A’ record for your domain and subdomains). The TTL tells resolvers how long to remember the IP address before asking for it again. A standard TTL might be 24 hours; you want it as low as possible for a migration.

    Set your TTL to the lowest value your provider allows. On platforms like Cloudflare, the minimum is 2 minutes (120 seconds). This ensures that when you finally “flip the switch,” the global change will propagate with incredible speed, minimizing the window where some users might still be directed to the old server.

    For more information, we recommend reading our blog post, “How to Speed Up DNS Propagation”.

    Exception for Cloudflare Proxy Users: It is important to note that if you are using Cloudflare’s orange-cloud proxy service (not the “DNS Only” grey-cloud mode), this step is unnecessary. Because all traffic is already routed through Cloudflare’s network, they control the IP change internally. When you update the IP in your Cloudflare dashboard, the change is virtually instantaneous for your users.

    Create New Server Environment

    Before you can move your data, you must build an identical environment on the new server. This can sometimes take significant effort as manually installing NGINX/Apache, multiple PHP versions, Redis, Supervisor, and editing configurations can be challenging.

    This is precisely where RunCloud transforms a multi-day headache into a few clicks.

    1. Provision Your New Server: Get a fresh server from your favorite provider (DigitalOcean, AWS, Vultr, etc.).
    2. Connect to RunCloud: Instead of SSH’ing in and running complex setup scripts, you simply connect your new server to your RunCloud account. RunCloud automatically installs and configures a highly optimized server stack (your choice of NGINX or OpenLiteSpeed, MariaDB, multiple PHP versions, Redis, Memcached, and more).

    If you want step-by-step instructions for this process, refer to our help documentation article that outlines the getting-started process. Once the core server is ready, you will need to recreate the application-specific environments on the server.

    If you have several web applications, manually creating each one, along with their specific PHP versions, system users, databases, and cron jobs, is tedious and prone to human error.

    Using RunCloud, you can compile a complete list of your web applications, database names, and cron jobs. You can then loop through that list and execute API calls to replicate the entire structure on your new server.

    If you want to learn more, refer to our official documentation, where we explore how to automate and build web applications with the RunCloud API.

    Phase 2: Copying Files and Databases to the New Server

    After creating a replica of your environment on the new server, it’s time to move the actual data.

    Syncing Web Application Files with rsync

    We have already written an in-depth article that explains 3 Free Ways To Migrate WordPress From Shared Hosting To Cloud Server, but if you are in a hurry, then you can use rsync, which is a powerful and versatile command-line utility designed for efficiently synchronizing files and directories between two locations.

    Initial Sync: You will perform an initial, comprehensive sync of your web application files from the old server (Server A) to the new one (Server B). A typical command looks like this:

    rsync -avz /old/path/ user@new-server-ip:/home/runcloud/webapps/my-app/

    Let’s understand the different options in the above command:

    • -a (archive mode): This option creates an archive of the source.
    • -v (verbose): This flag tells rsync to give you detailed output. As it runs, it will list every file being transferred, which is extremely helpful for monitoring progress and diagnosing issues. You might remove this flag for a cron job to keep logs clean.
    • -z (compress): This instructs rsync to compress the file data before sending it across the network. The destination server then uncompresses it. This significantly reduces network bandwidth usage and can dramatically speed up the transfer, especially for text-based files like code (PHP, HTML, CSS, JS).
    • --delete (optional): This option is useful for creating a perfect mirror. It tells rsync to delete any file from the destination directory if that file does not exist in the source directory. This is essential for a clean migration, as it removes old temporary files, logs, or user-uploaded content that has since been deleted from the live site.

    ⚠️ Word of Caution: Use the –delete flag with care. Always double-check that your source and destination paths are correct. If you accidentally reverse them, this flag would wipe out your source directory!

    • The destination path: user@new-server-ip:/home/runcloud/webapps/my-app/ specifies where the files should be sent. It’s composed of these parts:
      • user: The username on the new server that has permission to write to the destination directory.
      • new-server-ip: The IP address (or a resolvable hostname) of the new server you are migrating to.
      • The colon (:) is the separator that divides the remote user/host information from the file path on that remote machine.
      • /home/runcloud/webapps/my-app/: This is the absolute path on the destination server where the files will be placed.

    If your web application has frequent file uploads or changes, it is possible that its data will change by the time the migration is finished. In this case, you can set up a cron job on your old server to run this rsync command incrementally (e.g., every 5 or 10 minutes). rsync is incredibly efficient and will only transfer the files that have changed, keeping the new server’s content almost perfectly in sync with the old one.

    Database Migration

    This is the most sensitive part of the migration. A mistake here can lead to data loss. The goal is to get a live, real-time copy of the database running on the new server before the final cutover. The strategy you choose will depend entirely on the size of your database and how frequently it is updated.

    Method 1: The Classic Dump and Import (For Simple Sites)

    The simplest way is often the best for websites with minimal data or where content and user activity are infrequent. You can use the built-in mysqldump command to export your entire database into a single .sql file. You can then run the provided command on the new server to import this data.

    This method is very useful if you have minimal data. To transfer the exported file, you can even use rsync to make a fast and reliable copy. This approach is perfectly acceptable when the risk of new data being written between the time you export and import the database on the new server is very low.

    Method 2: Live Replication for Active, High-Traffic Sites

    If you are running a busy e-commerce store or an active community forum, then the classic dump-and-import method might not be suitable. The database might get updated several times in the window it takes to move the SQL dump to the new server and restore it. This gap will inevitably lead to lost transactions and customer data.

    A word of extreme caution: while you might be tempted to rsync your raw MySQL/MariaDB data directory, this is extremely dangerous for a live database and will almost certainly lead to corruption. Copying the core database files while the service is running will result in an inconsistent, broken state on the destination server.

    The recommended method to migrate the database is by establishing Master-Slave (or Primary-Replica) Replication. This process creates a live, continuously updating mirror of your database on the new server. Here’s how it works conceptually:

    1. Setup: Configure your old database server (Server A) as the “Master” and your new database server (Server B) as the “Slave”.
    2. Initial Data Dump: You’ll take a consistent snapshot of the master database that captures the precise replication position from the server’s binary log.
    3. Start Replicating: After importing this initial dump onto the slave server, you instruct it to connect to the master and begin replicating from the captured position. From this point forward, any change made to the database on Server A (new users, blog posts, sales orders) is automatically and instantly copied to the database on Server B.
    Master slave configuration for database migration

    This leaves you with a live, read-only, up-to-the-second copy of your production data on the new server.

    The complete, step-by-step process of setting up database replication is a detailed technical procedure and is out of scope for this article. However, we strongly recommend you read:

    Database Migration for AWS Users

    If your servers are within the AWS ecosystem, you can consider using the AWS Database Migration Service (DMS). It acts as an intermediary that connects to your source and destination databases. DMS handles the initial load and then captures ongoing changes (Change Data Capture – CDC) to keep the two in continuous sync.

    Migrating Custom Configurations

    After migrating the files, you need to check:

    • If you have added a custom NGINX include file to handle special redirects.
    • If you modified your php.ini file to increase memory limits or execution times for a demanding script

    These small, often-overlooked configuration files are the unique DNA of your server’s behavior; they are vital and must be moved to the new server to ensure your applications function correctly after the migration.

    This is where the benefit of a standardized environment provided by RunCloud becomes incredibly clear.

    On a manually configured server, these critical files can be scattered across numerous directories, making finding and backing them up a tedious and error-prone scavenger hunt.

    RunCloud eliminates this chaos by providing a user-friendly GUI-based dashboard for all your custom configurations. This standardization makes your custom files easy to locate, backup, and copy to the identical path on your new server, guaranteeing a consistent environment and ensuring that the nuanced rules that make your application work perfectly are never left behind.

    You can refer to the following documentation articles to quickly configure your new server environment and set custom configurations:

    1. Changing PHP Memory Limit
    2. Enable or Disable PHP Functions
    3. Set NGINX Reverse Proxy
    4. Configure CORS on NGINX
    5. How to Configure NGINX Log Rotation

    RunCloud empowers you with the flexibility to manage your server through either our intuitive graphical dashboard for individual tasks or our powerful API for mass automation.

    For example, changing a single site’s PHP version is a simple click in the dashboard, while using the API allows you to programmatically update the PHP version for all your applications at once, ensuring you always have the most efficient tool for the job.

    Phase 3: Flipping the Migration Switch for a Seamless Cutover

    If you have followed all the steps, the final switch should be simple and controlled if everything has been set up properly. Once you are ready to migrate, follow the steps below:

    1. Initiate Maintenance Mode (Optional, But Recommended): Briefly put your application on the old server in “maintenance mode”. This prevents new data from being written in the final minutes before the switch, ensuring 100% data integrity. Read our article on How to Temporarily Disable Your Web App or Show a Maintenance Page to learn more.
    2. Perform a Final Sync: Run your rsync command one last time to catch any last-second file changes.
    3. Promote the New Database: If replication is used, this is the most important step. You will stop the replication process and promote your “Slave” database on Server B to be the new “Master”. It is now the primary, writable database.
    4. Update Application Configurations: Point your application’s configuration file to the new server to use the local database (localhost). At this point, you will ensure that the applications on the new server can use the new database to make requests.
    5. The DNS Switch: Finally, you will need to go to your DNS provider (e.g., Cloudflare) and change the IP address in your ‘A’ record from the old server’s IP to the new server’s IP. After the DNS records are updated, your new website should be automatically visible to your visitors, as the new site’s maintenance mode was never enabled.
    6. Verify: Thanks to your low TTL, the change should occur within minutes. Start testing your domain. Check that it resolves to the new IP and that the application is fully functional.
    7. Decommission: Do not shut down the old server immediately! Leave it running for 24-48 hours as a safety net. Once you are confident that the new server is stable and handling all traffic, you can safely power down and delete the old server.

    After Action Report

    This article explains why server migration is a complex dance of DNS, environment replication, data synchronization, and precise timing. While the process requires careful planning, the right tools can eliminate most of the manual labor and risk.

    RunCloud is designed to make this process easier.

    We automate the most complex and error-prone aspects of server setup and configuration so that you can focus on your code. Here’s how:

    • We provide a powerful API that allows you to script the recreation of your entire application infrastructure.
    • We offer a stable, secure, and predictable environment in which you can confidently perform the sensitive data synchronization steps.
    • We make it easy to test changes by creating a WordPress staging environment with a single click.

    Want to make migrations less painful? Try RunCloud for easier, automated server management.

    Frequently Asked Questions (FAQ) for Server Migration

    Is a zero-downtime server migration possible?

    While achieving zero downtime is technically challenging, a “near-zero” downtime migration is achievable with proper planning. By synchronizing files and databases in real-time before the final DNS switch and using a very low DNS TTL, the cutover period can be reduced to just a few minutes.

    Why should I lower my DNS TTL before a server migration?

    Lowering your DNS Time-To-Live (TTL) value a week before migration is an important preparatory step. A low TTL, such as 2 minutes, tells web browsers and resolvers to check for your server’s IP address more frequently, ensuring that when you finally point your domain to the new server, the change spreads across the internet rapidly.

    How can I move a live MySQL database with minimal downtime?

    The safest and most effective method for moving a live MySQL or MariaDB database is establishing master-slave (or primary-replica) replication. This technique creates a perfect, real-time, synchronized copy of your database on the new server while the old one remains active. This allows you to instantly switch to a fully up-to-date database on migration day, preventing data loss.

    What is the safest way to copy website files to a new server?

    The industry-standard tool for safely copying website files is rsync, a command-line utility that efficiently synchronizes directories. For a minimal downtime migration, you should perform an initial full sync and then set up a cron job to run rsync incrementally. This ensures that any last-minute file changes on the old server are automatically copied to the new server right up until the final cutover.

    How does RunCloud make server migration easier?

    RunCloud dramatically simplifies server migrations by automating the most tedious and error-prone step: setting up the new server. Instead of manually installing and configuring NGINX, PHP, and databases, RunCloud provides an optimized, secure server that can be installed in minutes. Furthermore, its powerful API allows you to programmatically recreate all your web applications and cron jobs, saving dozens of hours of manual work.

    Do I need to change my DNS TTL if I use Cloudflare’s proxy (orange cloud)?

    No, you do not need to manually lower your DNS TTL if you use Cloudflare’s proxy service (the “orange cloud”). Because all your traffic is routed through Cloudflare’s network, they handle the IP address switch internally. When you update the IP in your Cloudflare dashboard, their system propagates the change to your users almost instantaneously.

  • Server Cache vs. Browser Cache vs. Site Cache: What’s the Difference?

    Server Cache vs. Browser Cache vs. Site Cache: What’s the Difference?

    Slow websites lose visitors. If your store or site takes more than a couple of seconds to load, people leave – and they don’t come back.

    That’s where caching comes in.

    In this guide, we’ll break down the three main types of website caching:

    • Server cache
    • Browser cache
    • Site (or page) cache

    You’ll learn what each one does, how they work together, and why they matter for speed and stability. We’ll also show how tools like RunCloud Hub for WordPress make it easier to manage caching without diving into server configs.

    Let’s get into it.

    What is Caching?

    When a server handles a request, it often needs to process multiple database queries and calculations before responding. This works fine for occasional access, but with repeated requests, it wastes time and server resources by doing the same work repeatedly.

    Caching speeds up performance by storing copies of frequently used data in fast-access memory. Instead of regenerating the same content on every request, the server or browser checks the cache first and serves the stored version if available.

    On websites, this cached data can include anything from images and stylesheets to entire web pages or database query results.

    📖 Suggested read: NGINX Caching for WordPress – Complete Guide & Tutorial

    What is Server Cache?

    Server cache refers to various caching mechanisms implemented directly on the web server or dedicated caching servers in front of the origin server. This type of caching reduces the server’s processing load by storing the results of computationally expensive operations or frequently requested content.

    For instance, if generating a dynamic web page requires multiple database queries and complex calculations, the server can cache the final HTML output of that page.

    When another user requests the same page, the server can deliver the pre-generated cached version almost instantly, without re-executing all the backend processes.

    Other examples of server caching include opcode caching (storing precompiled script code), object caching (storing frequently used data objects like database query results), or CDN caching (where geographically distributed servers cache static assets closer to users). This significantly improves the server’s capacity to handle more traffic and delivers content faster.

    With RunCloud, you can enable server-side caching quickly by installing RunCloud Hub, which includes powerful options like FastCGI and object caching for WordPress.

    Read more about caching in our blog post titled How to Easily Optimize Your WordPress Website With RunCloud Hub.

    📖 Suggested read: Which is Better: Redis Full-Page Cache or NGINX FastCGI Caching?

    What is Browser Cache?

    Browser caching helps speed up return visits to a site by storing common files, like logos, styles, and scripts, directly in the user’s browser. Instead of downloading them again every time, the browser loads them from local storage.

    This process dramatically speeds up page loading times for subsequent visits because fetching files from local storage is much faster than retrieving them online. It also reduces bandwidth consumption for both the user and the web server.

    Website administrators can influence browser caching behavior by setting appropriate HTTP headers (like Cache-Control and Expires) on their server responses, telling browsers how long they should keep specific files cached.

    📖 Suggested read: Everything You Need to Know About WordPress Object Caching

    What is Site Cache (Page Cache)?

    Site cache, often called page cache, is a type of server-side caching that stores fully rendered HTML pages. When a user requests a page, instead of the server dynamically generating it by querying databases, processing templates, and running scripts every single time, it can serve a static HTML copy directly from the cache. This approach is particularly beneficial for content that doesn’t change frequently for every user, such as blog posts, product pages, or informational pages.

    For example, if a popular news article is requested, the server might generate it once, store the complete HTML page in its cache, and then serve that same static file to thousands of subsequent visitors. This bypasses almost all server-side processing, leading to incredibly fast load times and significantly reducing server resource usage.

    📖 Suggested read: How to Use Redis Full-Page Caching to Speed Up WordPress

    Server Cache vs. Browser Cache vs. Site Cache: Key Differences

    Here’s how the three main types of cache compare, based on what they store, where they’re kept, and how they help your site perform better:

    Feature

    Browser Cache

    Server Cache

    Site Cache (Page Cache)

    Storage LocationOn the individual user’s computer (within their web browser)On the web server itself or on intermediary caching servers (e.g., CDNs, reverse proxies)On the web server
    What is StoredStatic assets (images, CSS, JavaScript files, fonts)Frequently requested data, database query results, pre-compiled script code, object data, page fragmentsFully rendered HTML pages (what the user sees in the browser)
    Primary BenefitSpeeds up subsequent page loads for the specific user by loading assets locally; reduces bandwidth for repeat visitsReduces the processing load on the origin server; accelerates responses by serving pre-computed or frequently accessed dataDelivers pre-built pages almost instantaneously; bypasses most server-side processing (database queries, PHP execution) for the cached page
    Who Primarily BenefitsThe individual returning userAll users accessing the siteAll users requesting a cached page

    📖 Suggested read: The Best WordPress Caching Plugins To Speed Up Your Site (2025)

    Which Cache Type is Best for WordPress?

    For WordPress sites, page caching (also called site caching) usually gives the biggest performance boost. WordPress dynamically builds each page by running PHP scripts and querying the database, even for content that doesn’t change. Page caching skips all that by storing a fully rendered HTML version of the page and serving it instantly.

    This alone can cut load times dramatically.

    Browser caching is another must-have. It stores static assets, like logos, stylesheets, and scripts, directly in the visitor’s browser. That means repeat visits feel faster, and your server uses less bandwidth.

    For high-traffic or more dynamic sites, you can go further by enabling object caching – a type of server cache that stores the results of frequent database queries in memory using tools like Redis or Memcached. This reduces the load on your database and speeds up dynamic page generation.

    When used together, these caching layers improve speed, reduce server resource use, and keep your site stable under load.

    📖 Suggested read: LiteSpeed Cache WordPress Plugin Configuration Tutorial

    When Should You Use Each Type of Cache?

    • Use browser caching on all websites to store static assets – logos, stylesheets, JavaScript, and fonts – that rarely change. This significantly speeds up page loads for returning visitors and reduces server bandwidth.
    • Server cache (in various forms) is essential for any dynamic website to reduce server load and improve user response times.
    • Use page cache (a type of site cache) for frequently accessed pages that are identical or very similar for most users, such as blog posts, informational pages, or product category pages.
    • For highly dynamic elements or user-specific content (like a shopping cart or personalized dashboard), more granular server caching, like object caching (for database query results) or fragment caching (for parts of a page), is more appropriate to avoid serving stale or incorrect personalized data.

    📖 Suggested read: 9 Redis Alternatives Worth Keeping an Eye On

    Final Thoughts

    Caching helps your site handle more traffic without increasing server resources. Each type of cache has a specific role, and together, they create a faster, more efficient user experience.

    For WordPress users, caching setup can feel complex.

    RunCloud Hub simplifies it by handling server-side caching (like FastCGI) automatically, with smart cache purging whenever content is updated.

    When a visitor requests a page, if a cached version exists at the server level, it’s served directly by NGINX before WordPress loads or processes PHP and database queries. This bypasses the most resource-intensive parts of WordPress page generation, resulting in dramatically faster load times for your visitors.

    RunCloud streamlines the setup and management of these powerful caching mechanisms and allows you to focus on creating great content while we optimize performance. Furthermore, RunCloud intelligently interacts with WordPress to know when content is updated, so it can purge the old cache and serve fresh content, ensuring accuracy.

    Caching doesn’t have to be technical. With RunCloud Hub, you can enable server, page, and object caching in just a few clicks – no manual config needed.

    If you want your site to load faster, handle more traffic, and use fewer resources, start using RunCloud today.

    FAQs on Caching

    What is the difference between caching and compression?

    Caching stores copies of frequently accessed data (e.g., web pages, images) to serve them quickly on subsequent requests, reducing server load and latency. Compression, on the other hand, reduces the file size of data before it’s transmitted, making downloads faster by using less bandwidth.

    Does caching improve SEO rankings?

    While caching isn’t a direct ranking factor, it significantly improves website speed and user experience, which are crucial for SEO. Faster load times can lead to lower bounce rates and better engagement, directly impacting search engine rankings.

    How do I know if my cache is working?

    You can use your browser’s developer tools (Network tab) to inspect HTTP response headers like Cache-Control, Expires, or X-Cache status, which tells if a resource was served from cache. Alternatively, online cache-checking tools or observing significantly faster load times on a second page visit can also confirm its operation.

    What happens if I disable caching?

    Disabling caching means every user request will fetch fresh data directly from your origin server, significantly increasing page load times and server resource consumption. Increased processing and bandwidth usage can lead to a slower user experience and potentially higher hosting costs.

  • How to Fix WordPress HTTP Error When Uploading Images (Quick Guide)

    How to Fix WordPress HTTP Error When Uploading Images (Quick Guide)

    Running into the “HTTP error” when uploading images to WordPress is frustrating, especially when everything else seems to be working fine.

    There’s no detail in the message, no hint at the cause, and no obvious fix. It could be a plugin conflict, a server setting, or something else entirely.

    This quick guide walks you through the most common causes and reliable fixes. Whether you’re a beginner or managing multiple sites, you’ll be able to get uploads working again in minutes.

    What is the WordPress HTTP Error When Uploading Images?

    The WordPress HTTP error is a common issue when uploading an image or video to the media library fails. Unfortunately, this error message is generic and doesn’t pinpoint the exact cause, making troubleshooting tricky.

    This error message signals that something went wrong during the upload process, but WordPress couldn’t determine the reason. When you’ve found the perfect image and are suddenly faced with a vague error message, it can be very frustrating to have your workflow interrupted.

    📖 Suggested read: How to Fix WordPress Revisions Not Showing [SOLVED]

    Common Causes of the WordPress HTTP Error

    Many things can trigger the WordPress HTTP error when uploading images. These errors can be caused by either client-side issues (like your browser or internet connection) or server-side problems (related to your hosting environment or WordPress configuration).

    One of the most common causes of this error is insufficient memory to handle the upload process. If you are using image optimization or security plugins, this can also cause plugin or theme conflicts and interfere with media uploads.

    Additionally, if you haven’t configured your WordPress settings correctly, you can encounter issues like incorrect file permissions for the uploads directory, an outdated PHP version, or problems with image processing libraries like Imagick. Sometimes, the problem can be as simple as a temporary glitch in your browser’s connection to WordPress or an expired login session.

    It is possible that the specific image file itself is causing the WordPress HTTP error. WordPress and web servers have limits on the maximum size of a file that can be uploaded; if your image exceeds this limit, the upload will fail. Depending on your hosting provider’s settings, this limit can range from a few megabytes to much larger. You can check your site’s current upload limit in your WordPress dashboard’s Media > Add New section.

    The type of file you’re trying to upload matters as well. WordPress has a default list of permitted file types for security reasons. If you attempt to upload a file format that isn’t on this allowed list (e.g., trying to upload a .tff font file or an .svg file without specific configuration), you’ll likely encounter an error.

    Finally, how you name your image files can also lead to upload failures. Depending on your WordPress instance, file names containing special characters (like $, *, &, #, %, @, !, etc.), accent marks, spaces, or unusual punctuation can cause issues with the WordPress media library. It’s always best to use simple, web-friendly file names consisting only of letters, numbers, and hyphens to avoid such problems. For instance, a filename like “my-awesome-image-1.jpg” is much less likely to cause an error than “My Awesome Image #{1}.jpg”.

    📖 Suggested read: How to Fix WordPress Stuck in Maintenance Mode? [100% WORKING]

    Step-by-Step Solutions to Fix the WordPress HTTP Error

    If you encounter the WordPress HTTP error while uploading images, you can try the following solutions to solve this problem:

    #1 – Refresh and Re-log in to WordPress

    Before diving into more complex fixes, it is a good idea to try the simplest one first. Refresh the page and try uploading the image again. Sometimes, temporary browser glitches or a brief loss of internet connectivity can cause the HTTP error.

    If refreshing doesn’t work, log out of your WordPress admin area and log back in, as your login session might have expired, leading to a security token mismatch that prevents uploads.

    #2 – Resize or Rename Your Image Files

    As we mentioned above, large image files can exceed your server’s upload limits, triggering the HTTP error. To solve this, you can try reducing the image’s dimensions or compressing its file size using an image editor before uploading.

    If you’re looking for WordPress plugins to do this, we recommend reading this excellent article from Patchstack on the best WordPress image optimization plugins.

    Additionally, ensure your image file names don’t contain special characters, spaces, or accents, as these can cause conflicts; rename files using only letters, numbers, and hyphens (e.g., my-new-image.jpg).

    In the past, we have also noticed that some poorly configured firewall rules block images with names that contain certain sensitive words. So, if your image name contains the phrase wp-login.php or wp-admin, you should consider renaming it to something else and trying again.

    #3 – Deactivate Plugins and Themes Temporarily

    Updating a plugin or theme in the background can easily cause a WordPress HTTP error. To check for this, temporarily deactivate all your plugins and try uploading the image; if it works, reactivate the plugins individually, testing after each, to find the problematic one.

    If plugins aren’t the issue, switch to a default WordPress theme like Twenty Twenty-Four to see if your current theme is causing the error.

    #4 – Increase PHP Memory Limit for WordPress

    WordPress and its plugins require a certain amount of server memory (RAM) to function correctly. If an image upload process demands more memory than allocated, it can result in an HTTP error.

    The exact step to modify this limit will vary depending on your hosting environment. Some hosting providers allow you to set this limit by defining the WP_MEMORY_LIMIT variable in the wp-config.php file, whereas others require you to modify the memory_limit directive in the php.ini file.

    However, if you are using RunCloud, this can be done with just a single button.

    Read the following documentation page to learn how RunCloud users can adjust PHP memory limits through their server management panel.

    #5 – Check and Fix Uploads Folder Permissions

    Linux servers assign specific permissions to each file and folder on your server. If you have configured incorrect file permissions on your wp-content/uploads folder, it can prevent WordPress from writing files to it.

    By default, the directory permissions should be 755 or 744, and individual file permissions should be 644. You can check and change these permissions using an FTP client or your hosting control panel’s file manager.

    If you are using RunCloud, you can resolve file permissions issues with a single click by going to Tools > Fix Ownership.

    #6 – Update PHP Version and Server Settings

    You might already know this, but running an outdated version of PHP can lead to various compatibility issues, including the HTTP error during image uploads. Ensure your server is using a recent, stable PHP version recommended by WordPress.

    The exact steps to change your PHP runtime will vary depending on your operating system and hosting provider. However, if you are using RunCloud, you can easily update the PHP runtime of your WordPress application by going to Settings > PHP Version and simply selecting from the dropdown list.

    Additionally, if you need to use an outdated version of PHP for your website, then RunCloud also provides a secure way to use EOL PHP runtimes without compromising the security of your other web applications.

    #7 – Temporarily Disable Security Modules

    If your web server uses security modules like mod_security (an Apache module) or Content-Security-Policy (CSP) to block suspicious activity, these can occasionally misinterpret legitimate image uploads as a threat and block them, resulting in an HTTP error.

    If you suspect this is the issue, you can temporarily disable the necessary security module and try again.

    However, disable security features cautiously and only temporarily for testing, as they are important for your site’s protection.

    We recommend consulting your host before making these changes, as they can have a lasting impact on your website.

    If you want to learn more about this, we recommend reading our previous post on using mod_security and OWASP for a web app firewall (WAF) to secure your website.

    #8 – Use FTP or Add From Server Plugin as a Last Resort

    Note: This is a workaround rather than a direct fix for the HTTP error, but it can be a lifesaver when you’re in a hurry.

    If all other troubleshooting steps fail and you urgently need to upload images, then you can bypass the WordPress media uploader by using an FTP client (like FileZilla) to upload images directly to a temporary folder on your server. Read our previous articles to learn how to do this effectively.

    After uploading via FTP, the images will not show up automatically in your WordPress dashboard, and you will need to run a specific WordPress command to register these images with the WordPress media library so they appear within your dashboard. ​

    After logging in to your server via SSH, you can run the wp media import ~/picture.jpg command from your WordPress installation directory. This command instructs WordPress to scan the specified path (in this example, a file named picture.jpg within the home directory) and import it into the Media Library.

    If you have uploaded the image to a different directory, you can simply replace the ~/picture.jpg with the path of your image file. You can specify the exact path to a single image file or use wildcards like * to match and import multiple images simultaneously.

    After executing the above command, you will receive a confirmation message for each image imported into the WordPress media library.

    📖 Suggested read: How to Fix the WordPress HTTP 500 Internal Server Error (Easy)

    Why Choose RunCloud for WordPress Hosting and Support?

    RunCloud is a powerful server management panel that simplifies WordPress hosting, development, and maintenance, especially when tackling issues such as the HTTP error during image uploads.

    RunCloud provides developers and agencies with the tools they need for efficient workflows. By offering a suite of specialized features, RunCloud ensures your WordPress sites run smoothly, securely, and are easy to manage. Here are a few reasons why you should use RunCloud to manage your servers:

    Reason 1: Expert WordPress Support for Troubleshooting Errors

    • Simplified Problem Isolation: RunCloud offers a clean and controlled server environment, which makes it easier to pinpoint the causes of WordPress errors, including the HTTP error.
    • Staging Environments: RunCloud allows you to easily create WordPress staging environments. These allow you to test solutions for errors like the HTTP upload issue, experiment with PHP versions, or try deactivating plugins without affecting your live site, significantly reducing the risk of breaking things.
    • Access to Logs: RunCloud provides straightforward access to server logs, which are invaluable for diagnosing complex WordPress errors that don’t provide much information on the front end.

    Reason 2: Optimized Server Performance for Seamless Image Uploads

    • Optimized Stack: RunCloud configures your server with an optimized stack (e.g., NGINX, Apache, various caching options like Redis or Memcached) out of the box. This ensures your WordPress site has the resources and speed needed for smooth operations, including handling image uploads efficiently and reducing the likelihood of HTTP errors caused by resource limitations.
    • Easy Resource Scaling: If insufficient server resources are causing upload errors, RunCloud makes it simpler to manage your server resources or to guide you if you need to upgrade your server plan with your chosen cloud provider (like DigitalOcean, Vultr, AWS, Google Cloud, etc.).
    • PHP Version Management: The RunCloud dashboard makes it easy to switch and manage multiple PHP versions. This is important for ensuring compatibility with the latest WordPress versions and for resolving HTTP errors that might stem from outdated or problematic PHP versions.

    Reason 3: Easy Management and Advanced Security for WordPress Sites

    • User-Friendly Interface: RunCloud provides an intuitive dashboard that simplifies complex server management tasks, such as setting up new WordPress sites, managing databases, and configuring SSL certificates, even for non-Linux experts.
    • Git Integration and Deployment: For developers, RunCloud supports WordPress deployment via Git. This means you can version control your WordPress projects, including themes and plugins, and deploy changes systematically from your Git repository to your staging or production environments, streamlining your development workflow and making rollbacks easier.
    • Team Collaboration and Permissions: RunCloud facilitates teamwork by allowing you to assign specific permissions to team members for different servers and applications. This granular control ensures that colleagues or clients only have access to what they need, and changes can be tracked, enhancing security and accountability.
    • Security Features: RunCloud implements various security measures, including easy SSL certificate deployment (Let’s Encrypt), firewall management, and regular security updates for server packages. This proactive approach helps protect your WordPress sites from threats that could otherwise lead to errors or downtime.

    📖 Suggested read: The Complete WordPress Speed Optimization Guide

    Wrapping Up: Fixing WordPress HTTP Errors When Uploading Images

    In this post, we have provided you with several solutions to resolve the HTTP error in your WordPress installation. By working through the solutions above, you should be able to restore your site’s media uploading functionality and get back to creating engaging content.

    Your hosting environment plays a crucial role in ensuring that your WordPress site runs smoothly and that image handling is optimized. RunCloud significantly simplifies the management of these aspects.

    For instance, RunCloud supports Imagick, a powerful image processing library that WordPress can use to improve image manipulation and quality. RunCloud also uses various caching mechanisms (such as Redis or Memcached), dramatically speeding up your website’s loading times by serving optimized images and content more efficiently.

    One of RunCloud’s most valuable features for troubleshooting and development is its provision for WordPress staging environments.

    Before you apply any fix for the HTTP error, update PHP, or change critical settings on your live website, you can test everything in a safe, isolated staging copy. This allows you to confirm that your changes work as expected and don’t introduce new problems.

    Ready to take control of your WordPress hosting and eliminate frustrating errors for good?

    Sign up for RunCloud today and streamline your WordPress management.

    FAQs on the WordPress HTTP Error When Uploading Images

    Why does WordPress show HTTP errors when uploading images?

    WordPress displays a generic HTTP error when it encounters an issue during the image upload process that it can’t specifically identify. This could be due to insufficient server resources, such as memory limits, incorrect file permissions, or temporary server-side glitches.

    How do I increase the upload size limit in WordPress?

    You can increase this limit by modifying directives like upload_max_filesize and post_max_size in your server’s php.ini file or via .htaccess. With RunCloud, managing these PHP settings for your WordPress sites is straightforward through your control panel, simplifying the adjustment.

    Will changing my theme or plugins fix the HTTP error?

    Potentially, yes, if a theme or plugin is poorly coded and consumes excessive server resources or interferes with the upload process. Temporarily deactivating them can help isolate if one is the culprit behind the HTTP error.

    Can server issues cause the HTTP error in WordPress?

    Absolutely. Server-side problems such as insufficient PHP memory limits, low disk space, or outdated PHP versions are common culprits for the HTTP error. A platform like RunCloud helps you easily manage server configurations and resources to prevent such issues.

    What is the best way to optimize images for WordPress uploads?

    The best approach is to compress images before uploading using tools or plugins to reduce file size without significant quality loss. Choosing appropriate formats like WebP or JPEG for photos and ensuring dimensions are suitable for web display also significantly helps.

  • How to Set Up an UpCloud Server with RunCloud

    UpCloud is a popular European cloud server provider that offers affordable cloud hosting services across the globe. What makes it especially striking is that UpCloud gives you a 100% Uptime SLA – which makes it one of the top choices for hosting your websites.

    UpCloud uses its own proprietary MaxIOPS storage technology to deliver industry-leading performance and reliability. It’s claimed to be faster than SSD – built on enterprise-grade SSDs, but up to 2x faster compared to industry-standard cloud servers.

    UpCloud offers a very simple pricing plan. The cheapest plan costs only €7/month, which includes 1GB Memory, 1 CPU Core, 25GB SSD, and 1 TB Transfer.

    UpCloud has 12 worldwide data centers, including digital hubs such as:

    1. Amsterdam
    2. Chicago
    3. Frankfurt
    4. Helsinki
    5. New York City
    6. London
    7. San Jose
    8. Singapore.

    This gives you the flexibility to deploy your applications close to your customers and reduce latency.

    In this post, we will show you how to set up an UpCloud server to host your websites with the help of RunCloud.

    Why Choose RunCloud to Setup Your UpCloud Server?

    RunCloud simplifies server management, allowing you to manage multiple servers and web applications with ease. You can easily change web application stacks and PHP versions, clone web applications, and secure them with SSL/TLS.

    RunCloud supports a range of web applications, including WordPress and Laravel, and offers features such as Git deployment and custom NGINX configuration. The Team feature is useful for agencies assigning different members to different servers with separate permissions. 

    Professional WordPress developers can use the one-click WordPress Staging feature to create a staging version of your website easily. If you don’t have a RunCloud account, you can sign up for a 5-day free trial, with no credit card required.

    Method 1 – UpCloud Server Provisioning (Recommended)

    With our server provisioning feature, you can set up a server in UpCloud directly from the RunCloud dashboard by connecting to UpCloud using their API in RunCloud.

    Video Tutorial: Setup UpCloud Server

    Create UpCloud API Key

    In UpCloud, your API key is in the form of the username and password of your UpCloud account. You only need to enable the “Allow API connection” option from your UpCloud account settings.

    It is NOT a good practice to use your main UpCloud username and password for the API key. We strongly recommend you create a dedicated subaccount that you can use for the API key.

    You can create a subaccount in UpCloud from the People tab within the account settings.

    creating API key

    For this subaccount permission, uncheck the “Access to control panel” option, and only enable the “Allow API connection” option. This subaccount will be dedicated to API connections only and can’t be used to access your UpCloud control panel.

    Upcloud API key

    Add UpCloud API Key to RunCloud

    After creating the key, you need to add it to RunCloud. You can either use the “Add a new key” shortcut when building a new server using RunCloud, or you can go to the “3rd Party API Key” menu by clicking your profile (top right), then clicking the Settings menu. There you will see the list of all server provider API keys that you have added to RunCloud.

    Upcloud Integration

    Click on UpCloud and add the login credentials of the new account that we just created. Once you have added your API key, you can start building the UpCloud server directly from the RunCloud dashboard.

    ADD upcloud integration

    Deploying Your UpCloud Server

    To get started, go to your RunCloud dashboard and click on the “Connect a Server” button to set up your first server.

    runcloud connect first server

    A screen will pop up showing you a list of available server providers – select UpCloud and click the “Deploy Server Automatically” option.

    Scroll down to the bottom of the page and give your server a suitable name, select the API key from the list, then click “Continue”.

    Upcloud create server

    On the next screen, you can pick your desired operating system, data center region and instance type according to your requirements. After this, you can deploy your server by clicking the “Add This Server” button – RunCloud will begin provisioning your server automatically.

    This step usually takes 5-10 minutes. Once the provision is complete, you will be returned to the RunCloud dashboard.

    Method 2 – Connect UpCloud With Direct Server Installation

    You can also use the direct server installation method to connect a server to RunCloud. To do this, go to your UpCloud dashboard and create a new server using either the Ubuntu 20, 22, or 24 LTS OS image in your desired datacenter.

    Upcloud dashboard create Server

    Next, configure any other settings that you want to change, such as adding SSH keys or updating your server’s name. The RunCloud agent requires TCP traffic on ports 80, 443, and 34210 to function properly, and we will explain how to do this later in the article.

    Upcloud SSH keys

    After creating your server, it should be visible in your UpCloud dashboard. Wait for the server to finish provisioning. Once it has, log into it using SSH.

    server summary upcloud

    After logging in to your server, go to the RunCloud dashboard and click on “Connect a Server”. In this method, instead of using “Direct installation” select “Connect via IP Address”.

    On the next screen, you will see a bash command. Copy this command and paste it in your SSH terminal. You’ll need to execute this command as the root user, so make sure you have the necessary permissions to do so.

    This will install all the necessary dependencies on your server that are required to run websites. After the installation is complete, you can close the terminal, and manage your server from the RunCloud dashboard.

    connect server manually RUnCloud

    Configuring the UpCloud Firewall for RunCloud

    After connecting your server to RunCloud, it is recommended that you configure a firewall. UpCloud provides a straightforward, network-level firewall that you can manage directly from your control panel. This section will guide you through setting up the necessary rules to ensure your server can communicate with RunCloud and serve web traffic securely while blocking all other unauthorized access.

    First, you need to access the firewall management interface for your server. To do this, log in to your UpCloud control panel and navigate to the details page of the server you intend to use with RunCloud. Once you are on the server’s overview screen, click on the Firewall tab to proceed.

    Next, you will add a series of rules to allow specific types of incoming traffic required for RunCloud and standard web hosting to function correctly. You will need to create a new rule for each of the following services:

    • Create a rule to allow standard HTTP traffic by permitting incoming connections on TCP port 80.
    • Add another rule for secure HTTPS traffic by allowing incoming connections on TCP port 443.
    • Optionally, to support the modern HTTP/3 protocol, you can add a rule that allows incoming traffic on UDP port 443.
    • Next, you must create a rule to allow the RunCloud agent to communicate with your server. Add a rule to permit incoming connections on TCP port 34210.
    • To allow yourself to connect to the server via SSH, create a rule for TCP port 22. For enhanced security, it is highly recommended that you disable or remove this rule if you don’t plan to connect to your server via SSH.

    Please note that when creating these firewall rules for incoming services, you must specify the port value at the target port on your server, not the source port. This is because you are defining which port on your server is “listening” for a connection. The source port of the connecting client is typically dynamic and unpredictable, so we leave its value to “All Ports” and create rules for the known service port (80, 443, 34210, etc.) on your end.

    After setting up the above rules, you must also allow traffic from UpCloud’s DNS servers. You need to add rules that permit incoming TCP and UDP traffic that originates from source port 53 from UpCloud’s specified DNS servers. You can simply create the necessary rules by clicking on the corresponding. checkbox.

    With all the necessary “allow” rules in place, you must now set the default policy for all other traffic. For a secure configuration, the default incoming traffic rule should be set to Drop. You can easily do this by selecting “drop” from the drop-down menu at the top. This ensures that any traffic not explicitly permitted by the rules you just created will be blocked, which will effectively secure your server from unsolicited connections.

    Finally, once you have added all the required rules and set the default policy to Drop, you can click on the “Save Changes” button on the top right. Next, you can flip the master switch to activate the firewall ruleset for your server and turn it on. Your server is now protected by the UpCloud firewall and correctly configured to communicate with the RunCloud platform.

    For a comprehensive guide and to learn more about advanced firewall features, please read the official UpCloud firewall documentation.

    After Action Report

    If you’re looking for a reliable and high-performing hosting option for your website, UpCloud is an excellent choice. Their enterprise-grade hardware and MaxIOPS storage technology provide consistent and fast performance, with an astonishing 100% Uptime SLA. Furthermore, their plans start as low as €7 per month, making it an affordable option for both businesses and individuals alike.

    To take your hosting experience to the next level, start using RunCloud alongside your UpCloud server. With RunCloud, you can easily manage your server and web applications from a single dashboard, even if you’re not an expert in Linux. Register for RunCloud and streamline your server management experience.

  • A Step-by-Step Guide to Connect a Microsoft Azure Server to RunCloud

    A Step-by-Step Guide to Connect a Microsoft Azure Server to RunCloud

    Managing servers through the command line can be tedious. Many cloud management platforms add to the friction by restricting functionality or locking you into their ecosystem.

    RunCloud was built to solve this exact problem.

    It is a flexible VPS management platform that works with any cloud platform, supports multiple server stacks, and supports both x86 and ARM CPU architectures.

    In this blog, we will show you how to combine the power and reliability of Microsoft’s Azure cloud with the simplicity and efficiency of the RunCloud server management panel.

    By the end of this guide, you’ll have a brand-new, optimized server ready to host your websites and applications.

    This guide is perfect for anyone, from hobbyists launching their first project to developers looking for a streamlined workflow.

    Important Note: RunCloud is designed to work on a fresh, clean server. This process will not work on an existing server with websites or other software (workloads) running on it. You must start with a brand-new server, which we’ll create together in the steps below.

    Let’s get started!

    Part 1: Creating Your Virtual Machine in Microsoft Azure

    First things first, we need a server. In Azure, a server is called a “Virtual Machine“ or VM.

    Step 1: Log in to Your Azure Portal and Create a VM

    1. Head over to the Microsoft Azure portal and log in.
    2. In the main dashboard, click on “Create a resource“.
    3. Search for “Virtual machine“ and select it, then click “Create“.
    Microsoft Azure dashboard

    Step 2: Configure the Basics

    Now you’ll see a screen with several options. Let’s fill them in.

    Project Details: Select your Azure Subscription and Resource Group. You can create a new resource group if you don’t have one. Think of it as a folder that holds all related resources for a specific project.

    Instance Details:

    • Virtual machine name: Give your server a memorable name, like runcloud-server.
    • Region: This is the physical location of your server. For the best performance, pick the region closest to most of your website visitors.
    • Availability options: You can leave this as the default for now.
    • Image: This is your server’s operating system. RunCloud works best with Ubuntu. Select the latest Ubuntu Server LTS version (e.g., Ubuntu Server 22.04 LTS).
    • VM architecture: RunCloud supports both x64 and Arm64. Unless you have a specific reason for using Arm64, x64 is the more widely compatible option.

    Step 3: Choose Your Server Size

    This setting determines how much power (CPU) and memory (RAM) your server has. We recommend starting small if you’re just starting out or hosting a small hobby project. Azure’s free plan often includes a B1s-size instance with one vCPU and 1 GB of memory. This is a great, cost-effective way to begin.

    You can always resize your server later if your website grows! However, when you resize your server, it will be rebooted, so you should be aware that your applications will be unavailable for a few moments.

    Step 4: Set Up Your Authentication Method

    This is how you (and RunCloud) will access the server for the initial setup. You have two choices:

    Option A: Password (The Simpler Route)

    This is the easiest option if you don’t plan on regularly logging in to your server’s command line.

    1. Select “Password“ as the authentication type.
    2. Choose a username. Azure sets the default username to azureuser, but you can choose any name you prefer.
    3. Create a strong password and confirm it.

    Security Note: While password authentication is generally less secure for long-term server access, it’s perfectly fine for our setup. Once RunCloud is connected, it manages your server, and you can disable direct SSH password login later if you don’t plan to use it.

    Option B: SSH Public Key (The More Secure Route)

    If you’re comfortable with the command line and want a more secure way to log in, choose this option.

    1. Select “SSH public key“.
    2. Azure can generate a new key pair for you. A key pair is made of two parts: a private key that you keep safe on your computer, and a public key that lives on the server.
    3. Select “Generate new key pair“ and give it a name.
    4. When you create the server, Azure will automatically download the private key (a .pem file) to your computer. Save this file in a secure location. Anyone with access to the private key can log in to your server.

    Step 5: Configure Inbound Ports and Firewall

    Under “Inbound port rules“, check the boxes to allow selected ports. From the dropdown, select:

    1. HTTP (80)
    2. HTTPS (443)
    3. SSH (22)

    These settings open 3 of the 4 required ports for RunCloud. We’ll manually add the final one (34210) in the next step.

    Step 6: Configure Disk Storage

    After configuring the above settings, you can move to the “Disks“ tab. Here, you can set the size of your VM’s disk.

    Step 7: Review and Deploy

    After this, you can click the “Review + Create“ button. Azure will validate your settings. If everything looks good, click “Create“.

    Your server will now be deployed, which usually takes a few minutes. If you chose the SSH key option, you will be prompted to download your private key file now.

    Part 2: Configuring Your Server’s Firewall

    Once your server is deployed, we need to configure one more networking setting. RunCloud uses a specific port to communicate securely with your server, and we need to open it.

    1. From your Azure dashboard, go to the resource page for your newly created virtual machine.
    2. On the left-hand menu, navigate to “Networking“ > “Network Settings“.
    3. Scroll down until you see a list of “Inbound port rules“. Click the “Create port rule“ button and create a new inbound port rule.
    1. A new panel will slide out. Fill in the following details:
      • Source: Any
      • Source port ranges: *
      • Destination: Any
      • Service: Custom
      • Destination port ranges: 34210
      • Protocol: TCP
      • Action: Allow
      • Priority: You can leave this as the default.
      • Name: Give it a clear name, like Allow_RunCloud_Agent.
    2. Click “Add“ to save this rule in your firewall. Once the rule is added to the firewall, it will be immediately enabled and applied to all the servers using this network security group.

    You might worry that opening a port to “Any“ IP address is risky. Don’t be! RunCloud has built-in security to protect this port. Our agent uses a double authentication mechanism. First, it verifies that the connection is coming from a legitimate RunCloud IP address. Second, it uses a unique server ID and key to validate every request. No one can access the agent without passing both of these checks.

    Your final firewall rules should look like this:

    • Port 22 (SSH): Allows you to connect via command line.
    • Port 80 (HTTP): Allows standard web traffic.
    • Port 443 (HTTPS): Allows secure web traffic (including UDP for HTTP/3).
    • Port 34210 (RunCloud Agent): Allows RunCloud to manage your server.

    Part 3: Connecting the Server to Your RunCloud Dashboard

    If you followed all the steps above, you can now connect this new server to your RunCloud account.

    1. Log in to your RunCloud Dashboard.
    2. Click “Connect a New Server“.
    3. Select “Microsoft Azure“ as your server provider, then choose the “Connect via IP Address“ method.
    1. After this, you will be required to configure the following details:
      • Server Stack: Choose your preferred stack. If you are unsure, you can leave these settings to their default value.
      • Server Name: Give your server a friendly name you’ll recognize in the dashboard.
      • IP Address: Copy the “Public IP address“ from your Azure VM’s overview page and paste it here.
    2. Click “Continue“.

    RunCloud will generate a custom installation script for your server. How you run it depends on the authentication method you chose in Azure.

    If you opted for Password Authentication:

    This is the easy part! RunCloud will simply ask for the server’s password. Enter this password into the RunCloud dashboard. The setup will continue automatically from there.

    Alternatively, you can also use the following command in your terminal to connect to the server manually via SSH. Before you execute the following command, make sure to replace the Azure user with the name of your user account and your_server_ip with the public IP address of your server:

    ssh azureuser@your_server_ip

    If you opted for SSH Key Authentication:

    You’ll need to log in to your server using a terminal and your downloaded .pem key file. We have already written an in-depth article that explains how to use SSH keys with PuTTY on RunCloud, but if you are in a hurry, then you can follow the steps below:

    1. Open a terminal (on Windows, you can use PowerShell or Command Prompt; on Mac/Linux, use the Terminal app). Use the following command format to connect to your server. Replace the file path and IP address with your own:
    ssh -i "C:\path\to\your\azure-key.pem" azureuser@your_server_ip

    Breakdown of the command:

    • "C:\path\to\your\azure-key.pem" is the path to your private key.
    • azureuser is your Azure username.
    • your_server_ip is your VM’s public IP.
    1. Once logged in, type sudo su to log in to the user account. RunCloud needs this user account to install the necessary software on your server. If you are unsure what user account you are using, you can run the whoami command to see your username.
    1. After logging in as the root user, copy the installation script from the RunCloud dashboard, paste it into your terminal, and press “Enter”.

    The installation will now begin; it typically takes 10-15 minutes for the script to install and optimize NGINX, PHP, MariaDB, Redis, and other essential tools for you.

    Once completed, you will see a success message on your screen with important information, such as your database root password and server details. We recommend saving this information in a secure password manager.

    Part 3: Experiencing the RunCloud Dashboard

    Once your server installation is finished, you can return to your RunCloud dashboard. Your new Azure server is listed, fully configured, and ready for action. You can now:

    Part 4: Disabling SSH Access

    Before you dive in, we suggest deploying a quick test web application to see RunCloud in action and confirm everything is running smoothly. Once you’re happy with the setup, we recommend taking one final step to enhance your server’s security.

    Since you’ll manage your server through the RunCloud dashboard, you can safely close the SSH port (22) we opened for the initial connection. Follow these steps below to disable SSH access to your server:

    1. Return to the “Network security group“ settings for your virtual machine in the Azure portal.
    2. Find the inbound rule for port 22 (SSH) in the list.
    3. On the far right of that rule, click the trash can icon.
    4. Confirm the deletion when prompted.

    Deleting this rule will block all SSH access to the server, preventing remote login attempts. You can now continue to use the RunCloud dashboard with the peace of mind that your server is safely managed.

    Final Thoughts

    This guide explains the process for connecting a new Microsoft Azure virtual machine to a RunCloud account. We covered the necessary steps, from creating the server and configuring its firewall rules in Azure to completing the connection through the RunCloud dashboard.

    Once setup is complete, you can manage your server entirely through the RunCloud dashboard. This allows for a more streamlined workflow for tasks such as deploying web applications, managing databases, and monitoring server health.

    While this guide covers the initial setup, RunCloud also offers a suite of tools for users with more advanced development workflows. Once you are comfortable with the basics, you may want to explore features such as:

    • One-Click Staging Environments: Create a safe copy of your live site to test updates, plugins, and code changes before pushing them to production.
    • WordPress Canvas: Define a master template with your preferred theme and plugins to deploy multiple, identical WordPress sites quickly and consistently.
    • Git & Atomic Deployments: Connect your repository from services like GitHub, Bitbucket, or GitLab for automated, seamless, and zero-downtime application deployments.

    These features help simplify and speed up both development and server management tasks.

    Sign up for RunCloud and join thousands of developers, agencies, and business owners who trust RunCloud to simplify their workflow and keep their websites running smoothly.

  • How to Fix WordPress High CPU Usage (10 Instant Solutions)

    How to Fix WordPress High CPU Usage (10 Instant Solutions)

    Is your WordPress site running slow, timing out, or crashing altogether? High CPU usage is often the cause.

    In this guide, you’ll learn how to identify what’s putting pressure on your server – and how to fix it.

    From bloated plugins to inefficient queries, we’ll cover 10 practical solutions that can quickly reduce CPU load and boost performance.

    We’ll also show how RunCloud helps you monitor, manage, and optimize your server more effectively.

    What Causes High CPU Usage in WordPress?

    If your WordPress site is consuming too much CPU, inefficient plugins or poorly coded themes could be the reason.

    For instance, a plugin performing complex database queries on every page load, like some related posts plugins without proper caching, or a feature-rich theme with numerous dynamic elements that aren’t optimized, can significantly strain the server’s processor.

    Even WordPress core features, such as the built-in CRON job (wp-cron.php), which executes a job on every visit, can contribute to this overhead for busy sites.

    External traffic and background processes are other major contributors to high CPU usage. A sudden surge in legitimate traffic from a viral post can naturally increase CPU load, but so can attacks from bots trying to brute-force logins, scrape content, or exploit vulnerabilities. These bots generate a high volume of requests and force WordPress to execute PHP scripts and database queries repeatedly. Malware infections can also run hidden processes and consume CPU for nefarious purposes like sending spam or participating in DDoS attacks.

    Finally, the underlying server environment and its configuration also play an important role. An underpowered hosting plan, especially shared hosting with limited resources, can quickly hit CPU limits even with moderate traffic. Outdated software versions, particularly older PHP versions, which are significantly slower and less efficient than modern counterparts (like PHP 8.x), can also be a contributing factor.

    Furthermore, a lack of proper caching mechanisms, both at the WordPress level (object cache, page cache) and server-level (like NGINX FastCGI cache or Varnish), forces WordPress to regenerate content dynamically for every request, a highly CPU-intensive operation.

    📖 Suggested read: WordPress Performance FAQs

    Quick Fixes to Instantly Reduce WordPress CPU Usage

    Let’s explore 10 different ways to bring down CPU utilization on servers:

    #1 – Remove or Replace High-CPU Plugins and Themes

    Using process monitoring tools, identify resource-intensive plugins or themes to lower CPU usage. Once found, replace them with more lightweight alternatives or remove them if they are no longer required.

    RunCloud’s server monitoring graphs make it visibly clear when a specific plugin or theme activation is causing CPU spikes, helping you pinpoint the culprit efficiently.

    Poorly coded plugins are notorious for causing high CPU load due to inefficient database queries, excessive background tasks, or unoptimized code execution on every page load. Similarly, themes packed with heavy JavaScript, numerous dynamic elements, or unoptimized built-in features can overwhelm your server’s processor.

    With RunCloud, you get detailed insights into your server’s performance, including slow scripts and slow queries. By observing these metrics before and after deactivating a suspected plugin or switching themes, you can confirm its impact.

    📖 Suggested read: How do you check Linux CPU usage or utilization? (5 Ways)

    #2 – Update WordPress Core, Plugins, and Themes

    After removing unnecessary plugins, ensure that your WordPress core, all plugins, and your theme are updated to their latest versions. Updates often include performance improvements and bug fixes that can reduce CPU load. Outdated software can contain inefficiencies or vulnerabilities that lead to increased resource consumption.

    RunCloud ensures your underlying server stack (like PHP runtime) is easily upgradable with just a few clicks. This provides an optimized and secure foundation that allows your updated WordPress site to perform at its best.

    📖 Suggested read: The Complete WordPress Speed Optimization Guide

    #3 – Optimize Your Database and Clean Up Junk

    If you manage a very large website, you should consider optimizing your WordPress database by cleaning out unnecessary data like post revisions, spam comments, and orphaned metadata, which can bloat tables and slow down queries.

    Using a database optimization plugin or tools such as phpMyAdmin (which RunCloud can help you install and manage) can significantly improve query speed and reduce CPU strain.

    RunCloud simplifies database management by allowing you to easily access and manage your MariaDB/MySQL databases.

    #4 – Set Up Effective Caching (Object, Page, CDN)

    If your WordPress website gets a decent amount of traffic, you should consider implementing caching at multiple levels: object caching (like Redis or Memcached) for database queries, page caching for static HTML versions of your pages, and a CDN to offload assets.

    Caching works by storing frequently accessed data or pre-rendered page content, so the server doesn’t have to generate it from scratch for every visitor.

    • Object caching stores the results of complex database queries
    • Page caching serves full static HTML pages
    • Browser caching tells visitors’ browsers to store local copies of assets.

    Each of these layers helps reduce the direct load on your server’s CPU and PHP processes.

    📖 Suggested read: Best Practices for Caching WooCommerce with RunCloud Hub

    Additionally, a CDN caches copies of your website’s static files on a global network of servers. When a user visits your site, these files are served from the CDN server closest to them, rather than directly from your main hosting server. This drastically reduces the load on your origin server, as it no longer has to serve every single image, CSS, or JavaScript file to every visitor. This dramatically reduces the PHP and database operations needed to serve a page, directly cutting CPU usage.

    RunCloud offers one-click installations for Redis and Memcached and supports server-level page caching like NGINX FastCGI cache, making setup incredibly straightforward.

    #5 – Limit or Disable wp-cron Jobs

    The default wp-cron.php is triggered whenever someone visits your site, and if you have many scheduled tasks or high traffic, it can fire frequently, consuming CPU resources. For example, if multiple visitors hit your site simultaneously, wp-cron.php might try to run multiple times, leading to unnecessary load. Disabling it and using a server cron means tasks run at specific, controlled intervals (e.g., every 2 minutes).

    You should disable the default WordPress cron and replace it with a server-side cron job scheduled at reasonable intervals. This ensures planned tasks run efficiently without impacting user experience or overloading the server during peak traffic.

    RunCloud provides a user-friendly Cron Job manager in its dashboard, allowing you to set up server-level cron jobs with only a few clicks.

    #6 – Block Bad Bots and Malware

    It’s no surprise that malicious bots constantly crawl sites, look for vulnerabilities, brute-force login pages, and scrape content. All of this triggers unnecessary PHP executions and database queries, driving up CPU usage.

    If malware makes it onto your server, it can run hidden scripts, send spam, or launch DDoS attacks – each of which puts a heavy load on your CPU.

    To prevent this, block bad bots and scan regularly for malware. Left unchecked, these threats can waste server resources and slow your site to a crawl.

    RunCloud increases your security by facilitating the setup of Fail2Ban, which automatically blocks IPs showing malicious behavior. While RunCloud is not a WAF, it allows easy integration with services like Cloudflare (including a WAF).

    📖 Suggested read: Best nine htop Alternatives for Linux, Mac & Windows in 2025

    #7 – Optimize Images and Media Files

    Large, unoptimized images slow down your site and increase server load, especially if your theme or plugins resize them on the fly.

    Compressing and resizing images reduces file size without sacrificing quality. This speeds up page loads, cuts bandwidth use, and eases the strain on your server.

    Ideally, you should handle image optimization before upload. Use tools like TinyPNG, Squoosh, or ImageOptim to compress files. For dynamic sites, consider a plugin or CDN that handles responsive image delivery and WebP conversion automatically. The less work your server has to do at runtime, the faster your site will load.

    Advanced Solutions for Persistent High CPU Usage

    When the quick fixes don’t work and your WordPress site is still struggling, you might need to roll up your sleeves and implement more advanced solutions.

    #8 – Switch to LiteSpeed or NGINX Hosting.

    If you regularly encounter issues, consider migrating your WordPress site to a server stack powered by NGINX or LiteSpeed. These web servers are renowned for their superior performance and efficiency in handling concurrent connections compared to traditional Apache.

    NGINX excels at rapidly serving static content and acts as a highly efficient reverse proxy. At the same time, LiteSpeed (especially LiteSpeed Enterprise with LSCache) offers built-in, advanced caching specifically designed for WordPress, often outperforming plugin-based caching solutions. Both options significantly reduce PHP and database processing overhead.

    Their event-driven architecture allows them to manage many requests with lower resource consumption, directly translating to reduced CPU load, especially during traffic spikes.

    RunCloud configures and optimizes an NGINX stack for your WordPress sites by default, providing a high-performance foundation out of the box. If this interests you, then you should learn more about how to migrate your existing web applications to RunCloud.

    📖 Suggested read: How to Install WordPress with RunCloud | Step-by-Step Guide

    #9 – Upgrade Your Hosting Plan or Server Resources

    Sometimes, despite all optimizations, your website’s legitimate traffic, complex functionalities, or sheer size simply demand more processing power, RAM, or faster I/O than your current hosting plan provides.

    If monitoring tools consistently show your server hitting its CPU limits even after thorough optimization, it’s a clear sign you’ve outgrown your current resources. You will need to upgrade to a VPS with more CPU cores, increased RAM, and faster NVMe SSDs.

    Read our “What is the Right Server Size?” documentation guide to learn more.

    #10 – Use Advanced Firewall Rules to Block Malicious Traffic

    If your server sees a sudden uptick in traffic, it may be attacked by malicious traffic. This can range from distributed denial-of-service (DDoS) attacks overwhelming your server with requests, to constant brute-force attempts on your login pages, or automated bots scanning for vulnerabilities.

    Each activity forces WordPress and your server to process unnecessary requests, significantly draining CPU resources. If you regularly face these attacks, you should consider implementing an advanced firewall strategy, encompassing both Web Application Firewalls (WAFs) at the network edge and server-level tools to filter this harmful traffic before it can execute PHP scripts or query your database.

    RunCloud makes it easy to protect your server against these threats.

    For instance, with just a few clicks within the RunCloud dashboard, you can configure Fail2Ban. This powerful tool monitors server logs for suspicious activities, such as repeated failed login attempts or patterns indicative of comment spam bots, and automatically blocks the offending IP addresses.

    Explore strategies like those discussed in “How to Block WordPress Spam Comment Bots With Fail2ban Rate Limiting” to learn more about how to use Fail2Ban specifically for security, including integrating it with Cloudflare or setting up rate limiting to block WordPress spam comment bots.

    RunCloud also supports ModSecurity, an open-source WAF that can provide an additional layer of protection directly on your server.

    RunCloud-managed servers integrate seamlessly with cloud-based WAF solutions like Cloudflare for a more comprehensive, edge-level defense. This combination is particularly effective in securing WordPress login pages using Cloudflare Zero Trust policies.

    Wrapping Up: Who Should Prioritize Fixing High CPU Usage in WordPress?

    Fixing the high CPU usage in WordPress is important for anyone running a serious website.

    • E-commerce store owners can lose direct revenue from slow checkouts or site unavailability.
    • High-traffic bloggers and content publishers risk losing readers and ad impressions due to poor performance.
    • Businesses relying on their website for leads will see conversion rates plummet if their site is sluggish.

    Even agencies and developers managing multiple client sites must proactively address CPU issues to maintain client satisfaction and site stability, as a poorly performing site reflects badly on their services. If your website’s speed, uptime, and user experience are important to you, then monitoring and optimizing CPU usage should be a top priority.

    This is where a robust server management panel like RunCloud becomes indispensable.

    RunCloud provides you with the Server Health Overview for your specific server. Here, you see live, at-a-glance metrics: CPU Usage, RAM Usage, Disk Space, and even Current Load Average.

    Within RunCloud’s settings, you’ll find a Notifications section. Here, you can configure thresholds for CPU usage (e.g., send an alert if CPU is above 80% for 5 minutes). This proactive notification means RunCloud often tells you there’s a problem before your users even notice, allowing you to investigate using the detailed graphs.

    Why RunCloud is a Better Option Than Limited Hosting

    The key advantage of using RunCloud to manage your own VPS is control. Unlike shared hosting, or simply upgrading to a more expensive plan, you get full visibility into what’s happening on your server – along with the tools to act on it.

    With shared hosting, if you hit a CPU limit, your only option is usually to upgrade, often without knowing if it will even fix the underlying issue. With RunCloud managing your VPS, you have the power to:

    1. Implement server-level caching (NGINX FastCGI, Redis, Memcached) with a few clicks.
    2. Easily switch PHP versions or configure PHP settings.
    3. Manage server-level cron jobs.
    4. Install security tools like Fail2Ban.
    5. Fine-tune your web server (NGINX) configuration.

    Switch to RunCloud and start solving performance issues properly.

    FAQs on Fixing WordPress High CPU Usage

    Why is my WordPress site using so much CPU?

    High CPU usage on your WordPress site is often caused by poorly coded plugins, an unoptimized theme, or excessive background tasks like frequent cron jobs. RunCloud provides excellent monitoring features that allow you to pinpoint resource-hungry processes.

    How do I reduce CPU usage in WordPress?

    Start by identifying problematic plugins or themes using monitoring tools to reduce CPU usage. Then consider optimizing images, implementing robust caching (server-level is great!), and ensuring your database is clean. RunCloud’s monitoring can help track the impact of these changes, and its alerts will notify you if usage spikes again.

    Should I switch hosting providers to fix CPU issues?

    Switching hosts can help if your current plan is underpowered, but before you do, make sure you’ve optimized your WordPress site and server configuration. If you’re on shared hosting with limited control, upgrading to a VPS and managing it with RunCloud gives you more resources, better visibility, and the tools to properly diagnose and fix CPU issues.

    Does using a CDN help with CPU usage?

    Yes, a Content Delivery Network (CDN) significantly helps reduce CPU usage by offloading static assets (images, CSS, JS) from your origin server to the CDN’s distributed network. This means your server handles fewer requests, directly lowering its CPU load, an effect you can clearly observe with RunCloud’s server monitoring.

    How do bots and malware increase CPU usage?

    Malicious bots can hammer your site with requests, attempting brute-force logins or scraping content. Malware might also execute hidden scripts or processes, both of which consume significant CPU resources.

    How often should I optimize my WordPress site for CPU?

    You should perform a review and optimization at least quarterly, or whenever you notice performance degradation, make significant site changes, or receive high usage alerts from your monitoring system. RunCloud’s monitoring provides a continuous overview, helping you decide when proactive optimization is needed based on usage trends.

    Can caching plugins cause high CPU usage?

    Ironically, caching plugins can cause high CPU usage if they are poorly configured, conflict with other plugins, or have an overly aggressive cache generation process on a busy site. This is why at RunCloud, we offer server-level caching, which can be more efficient and stable.

  • 7 Best Control Panels for VPS Management (Free & Paid)

    7 Best Control Panels for VPS Management (Free & Paid)

    Using a VPS to host your websites provides both control and seamless scalability. However, many people find it difficult to work with command-line systems.

    Tasks like configuring web servers, database setups, installing SSL certificates, patching vulnerabilities, and updating software stacks suddenly become challenging.

    This is where the best VPS control panels become invaluable.

    These tools provide a graphical interface to handle all those critical server tasks, which makes VPS hosting accessible and efficient for everyone from solo developers to growing businesses.

    In this guide, we’ll explore some of the market’s most popular server control panels, looking at options for every budget. We’ll dive into what makes a great panel, compare popular choices such as cPanel, Plesk, CyberPanel, and CloudPanel, and ultimately show you why we believe RunCloud is leading the pack.

    Let’s get started!

    What Makes a “Good” VPS Control Panel?

    Before we explore and compare different web panels, let’s first understand what makes a “good” VPS control panel:

    • Easy to Use (Good UI/UX): The panel should be simple to understand and navigate, even if you’re not a server expert. You shouldn’t need to spend ages learning how to do basic tasks.
    • Fast Performance: It should help your websites load quickly by using server resources efficiently, and support modern web technologies like NGINX and the latest PHP versions.
    • Strong Security: A good panel offers easy ways to manage firewalls, install SSL certificates (for HTTPS), and protect against common attacks.
    • Simple App Management: Installing popular applications like WordPress or phpMyAdmin should be easy with just a few clicks.
    • Helpful Server Tools: You need tools to monitor your server’s performance, set up automatic backups, schedule tasks (cron jobs), and manage your databases – all without any hassle.
    • Good Support & Clear Guides: When you run into trouble or have questions, you need to be able to find clear instructions or get help from a reliable support team.
    • Fair Price & Good Value: Whether free or paid, you want to feel like you’re getting good features and benefits for the cost (or your time, if it’s free).

    A Quick Look at Popular VPS Control Panels

    Let’s see some of the well-known VPS control panels available today for managing servers and deploying web applications.

    cPanel

    cPanel has been around for a long time (nearly thirty years), and for good reason. It has provided a wide array of tools for managing websites and servers, making it a popular choice, especially for traditional web hosting companies that manage many client accounts. It offers a familiar interface for users who need to handle everything from email accounts to database management.

    However, this comprehensive nature comes with a few considerations. cPanel can sometimes use a significant amount of your server’s resources, potentially impacting performance, and its licensing fees can make it a more expensive option compared to some modern alternatives. While it aims to simplify server tasks, the sheer number of features can feel overwhelming for users new to server management or those who prefer a more streamlined approach.

    Additionally, if you are using WHM (WebHost Manager), you’ll typically need to handle the initial server setup yourself, and getting the most out of cPanel often requires a certain level of server knowledge.

    This contrasts with solutions such as RunCloud, which are designed to simplify server setup from the start and offer a more focused, modern experience, particularly for developers and performance-conscious users.

    Plesk

    Plesk is well-regarded for its ability to simplify what’s often called “WebOps”. This makes it easier for IT administrators and web professionals to manage their servers and websites.

    Plesk works smoothly with various operating systems, including popular Linux versions such as Ubuntu and AlmaLinux, as well as Windows Server. This flexibility makes it an attractive option for those with specific OS needs or managing diverse server environments. It also supports different web servers like Apache and NGINX, giving users choices in setting up their sites.

    Plesk provides a user-friendly web interface for managing your web server. From here, you can set up new websites, manage email accounts, and even control how much server power (like CPU and RAM) each site can use.

    It also includes security tools to help you defend against common online threats and offers extensions for things like WordPress management and SSL certificate installation.

    While Plesk offers a good set of features and is a viable choice for those who need Windows support or a traditional panel experience, it still operates by being installed directly onto your server.

    This approach differs from modern SaaS platforms such as RunCloud, which only installs a small agent on your server to manage it. This results in a lighter footprint on your server’s resources and a more streamlined dashboard, which allows you to deploy or delete server instances with only a few clicks.

    CyberPanel

    CyberPanel is a control panel that has gained attention for its promise of high performance. One of CyberPanel’s biggest draws is its integration with LiteSpeed web server technology, both the open-source OpenLiteSpeed and the commercial LiteSpeed Enterprise. This focus on LiteSpeed, along with features like built-in caching (LSCache for WordPress is a notable one), is central to its claims of making websites run much faster.

    It also offers everyday conveniences, including one-click installers for popular applications like WordPress and Joomla, and free SSL certificates. As an open-source project, it has a thriving community, and many users appreciate the support they can get, especially for a free tool.

    While having a free trial and offering potential speed benefits with LiteSpeed is very appealing, it’s worth noting that, like other panels you install directly on your server, managing everything effectively might still require some technical know-how.

    Although many open-source projects are powerful, they can sometimes have a steeper learning curve for specific advanced configurations or might not always offer the same polished user experience across all features compared to commercially developed SaaS platforms.

    CyberPanel can undoubtedly manage your server and websites. However, if you prefer a solution that handles more of the server management heavy-lifting from a separate, streamlined interface, you should consider RunCloud. It supports OpenLiteSpeed servers and native NGINX, hybrid NGINX (NGINX + Apache), and containerized Docker applications.

    CloudPanel

    CloudPanel is a modern control panel with a clean user interface. It’s designed with developers in mind and offers support for popular technology stacks like PHP, Node.js, and Python. If you’re looking for a lightweight solution that doesn’t try to be everything to everyone, CloudPanel might catch your eye.

    It provides essential site management tools such as database management (MySQL/MariaDB), easy Let’s Encrypt SSL certificate integration, cron job scheduling, and a built-in file manager – all presented in a straightforward way.

    We picked CloudPanel for this post because it focuses on simplicity and automation. It aims to streamline the process of setting up new sites and deploying applications, and even offers a command-line interface (CLI) for users who want to automate these tasks. The dashboard provides a quick overview of server health, showing important stats including CPU, memory, and disk usage.

    CloudPanel is a good option if you are looking for a simple interface to interact with your web server. However, if you want to manage multiple servers across different cloud providers and grant restricted access to your team members, RunCloud offers far more flexibility and management capability.

    Hestia Control Panel

    HestiaCP is an open-source control panel recommended by users looking for a free, self-managed solution. HestiaCP offers a solid range of features for managing web domains, including support for multiple domains, easy app installations (like WordPress, Joomla, and Laravel), and NGINX caching options to help speed up websites.

    It allows users to manage their own DNS servers, which can be helpful for those who want more control over their domain name configurations. Additionally, it has built-in mail server capabilities that allow you to host your own email accounts, complete with TLS encryption and support for popular webmail clients like Roundcube. This can be a cost-saver for those who don’t want to pay for a separate business email provider.

    While HestiaCP provides a comprehensive set of free tools and is quite configurable, you must install and maintain it directly on your server. This means you’re responsible for server updates and troubleshooting.

    Also worth bearing in mind is that if you want an option to create and manage different workspaces from a single dashboard to manage server resources for multiple clients, then HestiaCP might not be right for you.

    VestaCP

    VestaCP is another great control panel released under open-source licenses. It offers all of its core functionality for free. However, many of its advanced features are available as add-ons or plugins that are sold separately.

    You can use VestaCP to manage your domain names and easily set up DNS records. It integrates with Let’s Encrypt to provide free SSL/TLS certificates, essential for secure websites today. It also handles database management, allows you to manage your website files directly, and schedule tasks using cron jobs.

    In addition to basic site management, VestaCP includes server administration features. You can manage user accounts with different permission levels, configure backups to protect your data, and monitor your server’s resource usage, such as CPU, memory, and disk space, to monitor performance. It also includes a firewall to help secure your server, with plans for additional security such as a Web Application Firewall (WAF) in future versions.

    While VestaCP offers a broad suite of tools at no cost, it’s important to remember that it does not have a dedicated support team. Since it is open-source software, you will not get a dedicated support assistant to look into your problems, and instead, you’ll have to rely on community forums to resolve your issues.

    Additionally, you can also expect slow updates and sparse documentation. When a vulnerability is discovered, it might not get patched for days, which makes it a huge security risk if you plan to host a website that needs to follow specific regulations and protect customer data.

    RunCloud

    RunCloud is the premier choice for modern cloud server management. What sets RunCloud apart is its intelligent architecture.

    Unlike traditional control panels that install directly onto your server and consume its precious resources, RunCloud securely connects to and manages your server remotely.

    This is a better approach as your server’s power is dedicated solely to your applications, not to running a heavy panel.

    Plus, you gain a single, elegant dashboard to oversee all your servers, which is incredibly efficient. This modern design is complemented by an exceptionally user-friendly and sleek interface, which makes complex server tasks feel intuitive, whether you’re a seasoned developer or just starting with a VPS.

    In addition, RunCloud is engineered for top-tier performance and robust security. It provides an NGINX stack optimized for speed right from the start, supports various advanced caching mechanisms like Redis and Memcached, and allows you to switch PHP versions effortlessly.

    RunCloud comes with sensible security features that are enabled out of the box. For example, it contains:

    • A one-click Let’s Encrypt SSL certificate that auto-renews
    • Integrated firewall management
    • Proactive server hardening.

    Developers and agencies should pay special attention to features such as Git deployment, atomic (zero-downtime) updates, and dedicated staging environments.

    These features make it easier to deploy new WordPress sites with one click, and manage databases, cron jobs, server health, and even team collaboration – all of which are streamlined and efficient.

    Key Features of RunCloud:

    • SaaS-Based Architecture: Manages your server remotely, keeping it lean and fast.
    • Optimized Performance: Native NGINX, advanced caching (Redis, Memcached), and the latest PHP versions.
    • One-Click WordPress Deployment: RunCloud simplifies deploying new WordPress sites, installs necessary plugins, and configures DNS records – all with a single click.
    • WordPress Staging Environments: Before going live, you can safely test changes on WordPress sites. RunCloud provides free test domains for this purpose, so you don’t need to worry about DNS configuration either.
    • Modern Security: Automated Let’s Encrypt SSL, firewall management (Fail2Ban), server hardening.
    • Server Health Monitoring & Alerts: RunCloud keeps you informed about your server’s resource usage.
    • Reliable Backup Solutions: Automated and on-demand off-server backups.
    • Team Collaboration Features: Manage server and web application access for your team.
    • Developer-Centric Tools: Git deployment, atomic updates, WP-CLI, Composer, Docker support.
    • RunCloud API: For custom automation and integrations.

    Why Paying for RunCloud is a Smart Investment for Your Business

    While many VPS control panels offer a free tier to get you started, RunCloud can transform your server management and, by extension, your business. RunCloud allows you to manage more servers, access advanced features such as staging environments and backup options, use team collaboration tools, and receive priority support.

    But perhaps the real value lies in the immense amount of time you save.

    Think about the hours spent on command lines, configuring security, manually updating software, or troubleshooting performance issues. RunCloud automates and simplifies these tasks to an incredible degree.

    Instead of being bogged down with server administration, you can focus on developing new products, serving your clients, marketing your services, and innovating. When considering the cost of your time or the potential expense of hiring a dedicated server administrator, a RunCloud subscription is exceptionally good value.

    Conclusion: Use RunCloud to Manage your VPS

    Choosing the right VPS control panel can feel like a major decision, and as we’ve seen, several capable options exist. While other panels have their merits and serve specific needs, RunCloud truly stands out by offering an exceptional balance of ease of use, raw power, blazing-fast performance, and a suite of genuinely modern features.

    What makes RunCloud particularly compelling is its universal appeal. If you’re a beginner just dipping your toes into the world of VPS hosting, RunCloud’s intuitive user interface and generous free tier make it incredibly welcoming, removing the fear factor from server management. You can get started, deploy your first WordPress site, and learn the ropes all without feeling overwhelmed.

    But for seasoned developers, agencies, and businesses, RunCloud scales beautifully. Its developer-centric tools, like Git deployment, staging environments, API, and team features, allow you to efficiently build, deploy, and manage complex applications.

    Ultimately, RunCloud simplifies the complexities of server administration so you can focus on what you do best: building amazing things online.

    Ready to experience the RunCloud difference firsthand? Sign up for your free account today.

    Have questions or need a little guidance getting started?
    Dive into our comprehensive documentation or talk to us directly in our friendly community.

  • How to Set Up a Hetzner Server with RunCloud

    How to Set Up a Hetzner Server with RunCloud

    Setting up a cloud server to host your website can be a daunting task, especially if you are not experienced in server management. However, with the right cloud provider and management tools, the process can be made significantly easier.

    RunCloud supports many different cloud providers, including Hetzner, a well-known cloud provider that offers reliable, affordable, and flexible cloud solutions. In this article, we will guide you on how to set up your Hetzner cloud server to host your website with the help of RunCloud, a server management platform that simplifies server management experience.

    How To Deploy A Server Automatically

    Configuring The Settings

    Step 1: Start by opening your RunCloud dashboard and open the ‘Servers’ tab. Click on the “Connect a Server” button to deploy a new server.

    RunCloud Dashboard Connect Your First Server

    Step 2: From the list of cloud providers, select Hetzner Cloud. Next, select the “Deploy Server Automatically” to create a new server.

    Selecting Cloud Provider RunCloud

    Step 3: Select your preferred installation type, native or containerized.

    Next, you need to select whether you want to use NGINX or OpenLiteSpeed. If you are unsure, pick Native installation with OpenLiteSpeed stack. 

    Learn more about containerization on RunCloud, OpenLiteSpeed vs. NGINX.

    Selecting tech stack on RunCloud

    Integrating Hetzner Account With RunCloud Dashboard

    You only need to do this step once. If you have already added your Hetzner API key to your RunCloud dashboard then you can skip this step.

    Step 1: Open your Hetzner Cloud dashboard in a new browser tab and select the project that you want to use. Now navigate to the “Security” submenu and open the “API tokens” tab.

    Creating API token On Hetzner

    Step 2: Click on “Generate API token” to make a fresh key. Give it a suitable description for your reference.

    Make sure to select the “Read & Write” option while creating the key.

    Finally click on the “Generate API token” to create the key.

    Generating an API token on Hetzner

    Step 3: After the key is created, it will only be displayed once. Make sure to copy it and add it to RunCloud before closing the dialog box. If you have accidentally closed the box, then you’ll need to delete the existing key and create another one.

    For security reasons, it is NOT recommended to save the keys in a text file.

    Successful creation of API token on Hetzne

    Step 3: After copying the key, go back to the RunCloud dashboard and click on “Add API Key“.

    Adding an API key on RunCloud

    Step 4: Paste your API token and give it a descriptive label. Click on the “Test Integration” button to check your connection. If you did everything correctly then you should see a Success pop-up.

    Now you can click on “Add API Key” to complete the integration.

    Successful testing of API key on RunCloud

    Deploying The Server

    Step 1: Now you should be able to use the key that we just added to create a server automatically. If you can’t see the new key in the drop-down menu then try refreshing the page. Select the key and click “Next”.

    Selecting the API Key on RunCloud

    Step 2: Next you need to specify your Operating system, region, and instance type. RunCloud recommends using Ubuntu 22.04 LTS in the region closest to most of your customers.

    Now pick the instance type based on your needs. If this is your first time creating a website, we recommend using the cheapest option.

    Selecting Pricing plans on Hetzner

    Step 3: Now scroll down to the bottom and give a suitable name to this server. You also need to acknowledge that Hetzner will bill you directly for any resources that you use. After this you can click on the “Add Server” button to deploy your server.

    This step usually takes 5-10 minutes as RunCloud creates a new server, runs a preliminary inspection, and installs basic tools and dependencies on the server before it can be used to host a web application.

    Optionally, you can go back to your Hetzner dashboard to confirm that this created a new server with desired configuration in your account.

    Note: Hetzner charges extra for public IPv4 addresses, and you might be billed for an amount slightly higher than what is shown in RunCloud dashboard. The prices shown here should only be treated as an approximation, and you should refer to Hetzner Cloud pricing plans for updated information.

    Hetzner dashboard server overview

    After you have finished setting up your server, you can move on to Installing WordPress with RunCloud.

    You should note that RunCloud will not automatically manage the server’s firewall when deploying a server via the RunCloud API with the Docker stack. This means that you are responsible for securing your server’s network ports and configuring firewall rules. So, you will need to configure the firewall manually and make sure you configure the firewall rules as explained in the steps listed below to protect your server from unauthorized access.

    Deleting the Server

    If you no longer want to use the server, then you should delete it to avoid unnecessary charges. Scroll down to the bottom of the Server Settings page and click on the “Delete Server” button. Confirm that you want to delete the server by specifying its name and click “Proceed to Delete”.

    This will permanently delete the server along with any web applications that were deployed on it, and Hetzner will no longer bill you for this server.

    Deleting RunCloud Server via API

    How To Deploy A Server Manually

    Creating An SSH Key

    We need to add an SSH key to our Hetzner account to access the servers. If you have an existing key, you can use that, or you can create a new key-pair by running the following command in Windows PowerShell:

    ssh-keygen -t ed25519

    You will be asked to specify the location of the key, and enter a passphrase. Press ‘Enter‘ to select the default settings and store your key without any password.

    Creating SSH key in Powershell

    During the key creation process, two new files will be created – a public key and a private key. After you have created the key, you will get a message saying “Your public key has been saved in …” In the above example, our key was saved in “C:\Users\user/.ssh/id_ed25519.pub“.

    You can use your favorite text editor to view the public key; we used the cat command to view the contents of the key. We will use the private key to connect to the server via SSH. In the above example, our public ssh key is:

    ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAYZ+GefPeMeossXzW9Jr/K48s6kBBzdEiO2iWOGKwCa user@deck-stop

    Copy the public key and open the Hetzner dashboard. Open a project and head over to the Security sub-menu. Click on the “Add SSH key” button to add a new key.

    Adding SSH key on Hetzner

    Paste your key, give it a descriptive name, and set it as the default key. Finally, click on “Add SSH key” to save the changes.

    Creating A Firewall Rule

    We need to create a firewall rule that allows TCP traffic on ports 80, 443, and 34210 so that RunCloud can communicate with the server properly. Additionally, you can also allow incoming UDP traffic on port 443 to enable HTTP3 traffic.

    Head over to the Firewalls tab and click on “Create Firewall”.

    Creating a Firewall Rule on Hetzner

    Add new rules to allow incoming TCP connections on ports 80, 443, and 34210. We will be connecting to our server via SSH to set it up.

    Add another rule to allow TCP connections on port 22 – you can delete this rule later if you like.

    Adding new firewall rules for RunCloud

    Leave the Outbound rules unchanged to allow all outgoing traffic. In the “Apply to” section, create a new selector. We will use this selector to mark our servers so that this firewall rule is applied to them.

    Configuring firewall selector on RunCloud

    Give a suitable name to your firewall rule and click “Create Firewall“.

    successful creation of firewall rule on Hetzner

    Creating A New Hetzner Cloud Server

    Go to the Servers submenu and click on “Add Server” to create a new server.

    Adding a server on Hetzner Cloud

    Pick the location of your server and select the OS image that you want to use. RunCloud recommends using Ubuntu 22.04.

    Selecting Operating System on Hetzner Cloud

    Select the server size – more powerful servers cost more. We recommend starting with cheap servers to avoid unexpected costs.

    Selecting Machine size on Hetzner Cloud

    We plan to host a website on this server which will be accessible from the internet, and so we will need an IP address to do so. Our desired settings are already selected, so we left the network settings unchanged.

    We also note that the SSH key which we just created in the Creating A SSH Key step was selected by default.

    Configuring SSH key on Hetzner Cloud

    Next we will select the firewall rule that we created in the Creating A Firewall Rule step.

    Setting RunCloud Firewall Rule

    Give a suitable name to your machine, verify all the settings, and click “Create” to deploy the server. After the server is created, note down the Public IP address of the server.

    Successful Creation of new Server on Hetzner

    Connecting The Hetzner Cloud Server To RunCloud

    Go to your RunCloud dashboard and click “Connect a Server”. Pick Hetzner Cloud and select “Connect via IP Address” to add the server manually.

    Connecting a Server in RunCloud via IP address

    Select the installation type and pick the server stack that you want to use. Enter a suitable name for your server and provide its IP address. You can find this address in the Hetzner dashboard.

    Setting IP address of Hetzner Server

    Connecting To The Server via SSH

    Now we need to log into the server to install the RunCloud agent. We use the following SSH command in Windows PowerShell to log in:

    ssh root@<ip address> -i <identity file>

    In the above command, replace the <ip address> with the IP address of your server, and <identity file> with the path to your identity file.

    Connecting to server via SSH

    In the above example, our SSH command was:

    ssh root@95.217.159.81 -i C:\Users\user/.ssh/id_ed25519

    If you are connecting to the server for the first time, you will be prompted to verify the fingerprint of the address. Type ‘yes’ and press ‘Enter‘.

    Installing the RunCloud Agent

    After logging into the server, we can install the RunCloud agent. Go back to the RunCloud setup process and switch to the “Manual Installation” tab.

    Installing RunCloud Agent

    Copy the given command and paste it in your PowerShell window, then press ‘Enter‘ to run it on the Hetzner server. This step takes 10-15 minutes to complete.

    Executing installation script

    After the installation is complete, you can type ‘exit‘ in PowerShell to close the connection to the server. You can type ‘exit’ again to close the PowerShell window as well.

    Successful installation of RunCloud Agent

    Deleting Your Server

    If you have created a server manually, you will need to delete it manually, both from Hetzner and RunCloud.

    Go to the Hetzner Cloud dashboard, open the server that you want to delete, and go to the “Delete” tab. Click on the “Delete Server” button and confirm your action by entering the name of the server.

    After you have deleted the server, you will no longer be able to access its contents – be sure to make any backups beforehand.

    Deleting Hetzner Server

    After deleting the server from Hetzner, we need to delete it from the RunCloud as well. Go to the settings menu of the server and scroll down to the bottom. Click on “Delete Server”, confirm by entering the name of the server, and click “Proceed to Delete”.

    Deleting server manually on RunCloud

    Video Tutorial – Setup Hetzner Server With RunCloud

    Next Steps

    Using Hetzner and RunCloud as your cloud provider and server management platform respectively is a wise choice. After the initial setup, new servers can be launched with only a few clicks.

    If you are not already using RunCloud to manage your servers, you can start doing so today. Sign up for our free trial and see how it makes server management more effective and easy.

    After you have finished setting up our server, you should read about How To Install WordPress and How To Install Magento with RunCloud.

  • LiteSpeed Cache WordPress Plugin Configuration Tutorial

    LiteSpeed Cache WordPress Plugin Configuration Tutorial

    LiteSpeed Cache is a caching plugin for WordPress that helps improve the performance of a website by storing frequently accessed data in a cache. This allows the website to load faster for visitors by reducing the amount of time it takes for the server to process and retrieve the necessary data.

    LiteSpeed Cache is built for the LiteSpeed web server, which is known for its high performance and low resource usage.

    In this article, we will walk through the steps of installing the LiteSpeed plugin on your WordPress site and explain how to configure it correctly.

    Why Use LiteSpeed Cache Plugin On WordPress?

    One of the key benefits of using LiteSpeed Cache is that it can significantly improve website loading speed by caching website content and resources.

    Caching involves storing a copy of a webpage’s content and resources, such as images and CSS files, on the server. When a user requests the same page, the server can quickly serve the cached version, rather than having to generate the page from scratch each time. This can greatly reduce the amount of time it takes for a page to load.

    This can lead to a better user experience for visitors, which can help increase engagement and reduce bounce rates. Additionally, a faster website can also lead to improved search engine rankings, as search engines such as Google take page load speed into account when determining page rank.

    LiteSpeed Cache includes other features such as minification and concatenation of HTML, CSS, and JS files to reduce the size of resources. This also helps to decreases the website loading time.

    LiteSpeed Cache also supports CDN integration, which can further speed up page loading times by delivering content and resources to users from a server that is geographically closer to them.

    Suggested read: How To Configure LSCache for Laravel

    How to Install the LiteSpeed Cache Plugin on WordPress

    Installing the LiteSpeed Cache plugin on a WordPress website is a straightforward process. Here are the steps you can follow to install the plugin:

    • In the WordPress dashboard, navigate to the “Plugins” menu, and click on the “Add New” button.
    • In the “Add Plugins” page, type “LiteSpeed Cache” in the search bar, and click on the “Search Plugins” button.
    LiteSpeed Cache plugin homepage
    • From the search results, select the “LiteSpeed Cache” plugin by LiteSpeed Technologies, and click on the “Install Now” button.
    • Once the installation is complete, click on the “Activate” button to activate the plugin.
    • After the plugin is activated, you will see a new “LiteSpeed Cache” menu item in the WordPress dashboard (see below).
    LiteSpeed Cache menu in wordpress
    • Now navigate down to the “General” tab and click on “Request a Domain key” to start using the plugin.

    Configuring Redis ACL with LSCache on OpenLiteSpeed Servers

    On RunCloud, all new Redis instances are secured with Access Control Lists (ACL) by default. If you want to use Redis for object caching in WordPress using LSCache on your OpenLiteSpeed server, you’ll need to perform a few configuration steps.

    Before we go any further, ensure that Redis is installed, activated, and running correctly on your server.

    1. Define the Cache Prefix in wp-config.php

    You’ll need to define a specific cache prefix in your WordPress wp-config.php file. This is necessary for limiting the scope of keys when Redis ACLs are in use. To do this, open your wp-config.php file (found in the root directory of your WordPress installation) and add the following line:

    define('LSOC_PREFIX', 'application-name-rcredis:');

    You must replace application-name-rcredis: with your actual application-specific prefix. You can find the prefix value required for your application, along with the necessary Redis username and password, within your RunCloud dashboard under the “Settings” tab of your web application.

    After adding the correct prefix, save your wp-config.php file.

    1. Configure LSCache Object Cache Settings in WordPress

    Once the prefix is defined, navigate to your WordPress admin dashboard and go to LSCache > Cache, and then click on the “Object” tab. Here, you’ll configure LSCache to connect to your Redis instance using ACL credentials.

    On this screen, you will need to fill the following fields:

    • Object Cache: Set this toggle to ON. This enables LSCache’s external object cache functionality and allows it to use Redis (or Memcached) instead of relying solely on WordPress’s internal object caching.
    • Method: Select Redis from the dropdown menu.
    • Host: This is the IP address Redis listens on. If Redis is running on the same server as your OpenLiteSpeed web server (which is the default and most common setup), then you need to use the value 127.0.0.1.
    • Port: In this field, enter 6379, which is the default network port for Redis.
    • Username: Enter the Redis ACL username provided in your RunCloud dashboard.
    • Password: Enter the corresponding password for the Redis ACL username that you noted in the previous step.
    1. Save Changes and Verify Connection

    After filling in all the above fields using the details from your RunCloud dashboard, click the “Save Changes” button. After saving the changes, refresh the page, LSCache will then attempt to connect to your Redis server using the credentials you’ve provided. If the configuration is correct and Redis is accessible with the given ACL details, you should see a status update similar to this:

    LSCACHE with Redis in OLS
    • Redis Extension: Enabled confirms that your PHP environment has the necessary Redis extension loaded.
    • Connection Test: Passed confirms that the LSCache has successfully connected to your Redis server using the ACL username and password, and can communicate with it for object caching.

    Your WordPress site is now configured to use Redis with ACL for object caching via LSCache, which can significantly improve its performance and scalability.

    Step-By-Step Instructions On How To Configure The Plugin For Optimal Performance

    These are the steps we would advise you follow to configure the LiteSpeed Cache plugin for optimal performance on a RunCloud server:

    1. In the WordPress dashboard, navigate to the “LiteSpeed Cache” menu and click on the “Presets” tab. This tab contains some recommended presets, which are designed to work well for most websites. Pick the one closest to your requirements; we’ll fine tune the individual settings later. 
    2. Under the “Cache” tab:
      • Make sure that “Enable Cache” and “Cache Login Page” are both enabled.
      • Under “Cache TTL“, set the time for which a page will be cached before it needs to be rebuilt. If the content on your website is updated frequently, then you should consider a shorter time period like 5 minutes; if most of the content is static then you can pick longer timeframes such as 1 day, or even a week.
      • Under “Purge All on Upgrade“, select “Auto Purge” if you want the plugin to automatically purge the cache when you update WordPress or any plugins. This is useful because if you’ve recently updated your website’s content or design, you’ll want visitors to see those changes.
      • Under the “Excludes” section you can exclude certain pages or posts from being cached.
      • Enable “Browser Cache” and “Object Cache” to store static files locally in the user’s browser.
    LiteSpeed Cache settings
    1. In the “CDN” tab:
      • Turn on “QUIC.cloud CDN“ and enable “CDN Mapping”.
      • Configure the integration with Cloudflare or a content delivery network (CDN) by switching on the “Cloudflare API” option and entering the necessary information.
    2. Under the  “Image Optimization” tab:
      • Turn on “Auto Request Cron” to automatically optimize images on a schedule.
      • Make sure to turn on “Image WebP Replacement” to start using WebP versions of images. This significantly improves load times by replacing images with a newer image format.
    3. Under the “Page Optimization” tab:
      • Enable “CSS Minification“, “JS Minification“, and “HTML Minification” to minify the appropriate files.
      • Enable “DNS Prefetch Control“ to speed up the loading times of all URLs.
      • Enable “Lazy Load Images” and “Optimize Images on Upload” to optimize image loading and reduce page load times.
      • Turn on “Load JS Deferred” to defer JavaScript execution.
    LiteSpeed Cache js settings
    1. Once you have configured the plugin settings, click on the “Save Changes” button to save the settings.

    It’s important to note that the settings may vary depending on the website structure and the specific needs of the website. Therefore, it’s recommended to consult the plugin documentation for detailed information on configuration and optimization options.

    Testing Performance Improvements

    It’s always a good idea to test the website performance both with and without the plugin, and compare the results to see the actual impact of the plugin on your website’s performance.

    There are several tools available for testing website performance. Some popular options include:

    • Google PageSpeed Insights: This tool analyzes a webpage and provides a score, and suggestions for how to improve its performance.
    • GTmetrix: This tool analyzes a webpage and provides a score, along with detailed information about the page’s load time and resources.
    • Lighthouse: This is an open-source tool that can be run either as a browser extension, or in the command line. It analyzes web pages and provides performance metrics, and suggestions for improvements.

    Troubleshooting Tips For Common Issues

    There are several common issues that users may experience when using the LiteSpeed Cache plugin on a RunCloud server. Below are some troubleshooting tips that can help resolve these issues:

    • Cache not working: Make sure that the LiteSpeed web server and the LiteSpeed Cache plugin are both installed and configured correctly. Also, check the plugin settings to ensure that caching is enabled for the appropriate pages and posts.
    • Integration with Cloudflare or CDN not working: LiteSpeed Cache can integrate with Cloudflare or a content delivery network (CDN) to serve cached pages and resources to visitors. If the integration is not working, check the plugin settings to ensure that the appropriate integration is enabled and configured correctly.
    • Conflicts with other plugins or themes: Conflicts with other plugins or themes can cause issues with LiteSpeed Cache. In such cases, deactivate or remove any conflicting plugins or themes, and check if the issue is resolved.
    • Incorrect page cache: If LiteSpeed Cache is not caching pages correctly, make sure that the plugin settings are configured correctly for your website, and clear the cache.
    • Not seeing any improvements: In some cases, even after proper configuration, you may not see any improvements in website performance. One possible reason is that the website is already performing well, and LiteSpeed Cache is not able to make any significant improvements. In such cases, it’s always a good idea to monitor the website performance, and compare the results both with and without the plugin.

    After Action Report – Monitoring Site Performance

    LiteSpeed Cache is a highly effective caching plugin for WordPress that can significantly improve website performance.

    As your development projects become more complex and your team grows, it’s essential to have more control over your servers, and it’s always a good idea to test and measure the performance difference both with and without the plugin.

    RunCloud provides a comprehensive solution for managing your cloud servers, deploying websites and web applications, and monitoring server health – all through a secure and user-friendly management panel. Sign up for RunCloud today, and see the difference for yourself.