The Ubuntu 22.04 Stack Feature Updates

8 min read

Important

Ubuntu 22.04 is only production ready for Vultr servers. All other API supported providers will be available in the near future, followed by custom servers.

Table of Contents

Part 1: All About Ubuntu the 22.04 Stack
  1. Introduction
  2. System User Updates
  3. GP-Cron Active by Default
  4. Unix Socket Updates
  5. Redis Updates
  6. MySQL Memory Defaults
  7. Auto-Configured Plugin Caching Settings
  8. /tmp Lockdown
  9. Nginx Includes Lua
Part 2: Migrating Your Sites to Ubuntu 22.04
  1. Ubuntu 18.04 and Support
  2. How to Upgrade
  3. Vultr: Keep Your Existing Server IPs and Avoid DNS Changes
  4. IMPORTANT: Check Your Websites Before Deleting Your 18.04 Server
  5. PeakFreq Managed Servers
  6. Additional Resources

Part 1: All About Ubuntu the 22.04 Stack

Introduction

The new 22.04 stack is now out of beta on Vultr servers, with it’s production release for other API servers coming in the near future.

Here’s a quick breakdown of what’s new with 22.04.

These updates pave the way for continued improvements into the future and, most noticeably from a feature standpoint, now includes support for system user-level SSH access. This also means:

  • New servers will have updates and security for years to come.
  • More and more refinements to what is already arguably the best WordPress hosting stack on the planet.
  • Generally better performance, higher security, and more reliability as we continue to iterate on what we’ve already created.

Migrating From Ubuntu 18.04

For those of you looking to begin migrating from Ubuntu 18.04 servers, our cloning scripts are fully compatible with this and the 20.04 stack. As with any migration however, please ensure you thoroughly test that all your sites have migrated successfully before deleting your original servers.

System User Updates

The Ubuntu 22.04 stack includes a complete rebuild for how we handle system users. This allows you to access your servers via SSH as well as SFTP. The 22.04 chroot shell is much more functional and includes:

awk bash cat clear composer cp curl cut du env find git git-receive-pack git-shell git-upload-archive git-upload-pack grep head id less ls ln mkdir mysql mysqldump mysqloptimize mysqlcheck mysqlrepair mysqlshow mysqlimport mv nano ping php8.0/lsphp80 php8.1/lsphp81 openssl pwd rm sed sh stat strace tail tar tee touch unzip vi wp-cli wc which wget zip

To enable SSH access on the 22.04 beta stack, you can use the settings modal in the UI or you can run a GP-CLI command by connecting to your server as the root user.

Updates also include: 

  • The ability to create sudo users
  • Stricter password validation settings

Details on creating and managing users on 22.04 and future stacks can be found here:

Create and Manage System Users on Your GridPane Servers

GP-Cron Active by Default

On Ubuntu 20.04 and below, GP-Cron needed to be manually activated on a per-website basis.

On Ubuntu 22.04 and all future stacks, GP-Cron is now active on all sites by default, uses WP-CLI, and is fully multisite compatible.

What is GP-Cron?

WP-Cron is how WordPress handles scheduling time-based tasks such as checking for updates and publishing scheduled post. Our GP-Cron does the same thing, but at the server level, and when GP-Cron is active, we disable the native WordPress cron via your websites wp-config.php file.

However, unlike WP-Cron, which relies on people visiting your website, we set it to run every 5 minutes, ensuring that important tasks are not missed. 

You can learn more about GP-Cron and how to customize it in this knowledge base article:

WP-Cron and GridPane’s GP-Cron

Unix Sockets Update

The 22.04 stack is configured to use Unix sockets for both MySQL and Redis connections. This may offer a performance boost for dynamic websites such as WooCommerce, BuddyBoss, LMS, etc.

Redis Updates

In addition to using Unix sockets for Redis connections, Redis also now uses separate database indexes per website. 

MySQL Memory Defaults

Our default MySQL memory settings have increased, allowing for more generous memory settings out of the box. Further details coming soon.

Auto-Configured Plugin Caching Settings

Caching plugins are now auto-configured on activation.

  • Activating Nginx page caching installs plugins  (if missing), and autoconfigures it for the correct cache type
  • The LSCache plugin will autoconfigure with the correct database when enabled
  • Redis is fully object cache pro compatible

/tmp Lockdown

The /tmp directory is now mounted as noexec. This means that this directory cannot contain executable binaries (and ensures that system users cannot execute code from the /tmp directory).

Originally, this caused issues with the Backblaze B2 backup integration. These issues have now been solved, and Backblaze will work without issue. 

Nginx Includes Lua

Our Nginx stack now includes both Lua-Nginx and NJS (Nginx-Javascript) out of the box.

Part 2: Migrating Your Sites to Ubuntu 22.04

Important

Ubuntu 22.04 is only production ready for Vultr servers. All other API supported providers will be available in the near future, followed by custom servers.

Ubuntu 18.04 and Support

Existing servers running Ubuntu 18.04 are still currently supported and we’ll provide notice in advance for when our support for Ubuntu 18.04 will come to an end. This will, of course, be after the Ubuntu 22.04 stack is fully rolled out.

However, the sooner you start transitioning to 22.04, the better to ensure you don’t need to rush the process down the line.

How to Upgrade

The easiest way to move your websites is to create a brand new server and then use our full server clone functionality to clone all of your websites in one go. Details on this feature can be found here:

Cloning One Entire Server to Another

Important: Unfortunately, it’s not possible to support upgrading a server’s OS. This is not the straightforward process that it appears to be on the surface, and it can’t simply be automated. Each stack is built specifically to be compatible with each version of the Ubuntu OS and the different software/packages/modules that support it. This means you need a new 22.04 server.

Vultr: Keep Your Existing Server IPs and Avoid DNS Changes

Vultr allows you to convert your existing server IP addresses into “reserved” IP addresses (commonly known as floating IPs). This can potentially save you a great deal of time and Vultr outlines the process in the following article – but please ensure you follow the guidance immediately below before deleting existing servers:

Vultr: Convert an Existing IP to Reserved

IMPORTANT: Check Your Websites Before Deleting Your 18.04 Server

Our cloning tool is extremely reliable and will work without issue for almost all websites. However, no matter how reliable, you must always check your websites to confirm that they have been cloned successfully. You can do this via a local host redirect as detailed here before changing DNS / moving your floating IP address:

How can I edit my local hosts file to redirect URLs

PeakFreq Managed Servers

Our PeakFreq-managed servers are also an option we’ve received a lot of inquiries about. This is also now available to everyone by making a deposit, and all PeakFreq servers run Ubuntu 22.04. You can learn more about PeakFreq here:

Additional Resources

If you don’t already have a DNS management strategy in place for your hosting clients, now is an excellent time to implement one.

Q&A

Yes, assuming your servers are all properly sized, and your website databases don’t have any serious issues.

If you’re running a full server-to-server clone, you will also be able to use remote backups from alternative sources for any that don’t play nice for any reason.

Easily Deploy a GridPane WordPress Site

And these articles will help you get started customizing your settings for even quicker deployments:

New WordPress Website Build Configuration Settings

Using Default WordPress Admin Settings to deploy GridPane sites

New Website Checklists

There are numerous reasons why support for new OS versions takes some time. For example, we were waiting for specific Nginx updates before we released the 20.04 stack, and then ultimately ended up building those ourselves.

Here’s a rundown of the different factors:

  • Different packages/modules that we require are not immediately supported by their respective developers, and we need to either wait for their updates to support them or build what we need ourselves.
  • Each new stack contains new features, and these take time to build, iterate on, guard against user error, and ensure backward compatibility with earlier stacks.
  • Existing features may require adjustments to be compatible with the new OS and/or new features.
  • The cloning tools need to be fully compatible with 18.04 and 20.04.
  • A massive amount of time-consuming, internal testing before the beta release.

Future stacks will continue to build upon the previous ones, and these may not always have such huge changes like the new system user functionality and directory structures, but we will always be at the mercy of the 3rd party packages we use, which can take 6-9 months or more to come out after the LTS release date.