JasmineDirectory.com was running on a VPS powered by LiteSpeed, WHM, and Cloudflare. After updating to the latest PHP version (8.2) last year, I decided it was time to move the server from CentOS to AlmaLinux, especially since WHM is dropping support for CentOS. The cPanel ELevate project is the tool that makes this possible, and despite the intimidating name, the process is manageable if you go in prepared.
Before you touch anything, understand what this migration actually does. AlmaLinux is binary compatible with CentOS, so the goal is not to rebuild your environment from scratch but to swap the underlying operating system while keeping cPanel, your sites, and your configuration intact. That is why the risk profile is lower than a full server rebuild, but it is not zero. Read the warning below twice.
ATTENTION: Do not use Putty to access the server via your current SSH server because during the upgrade that existing SSH server will be wiped. So you need access to the server’s console via a VNC viewer.
That single point trips up more people than any script error. When the upgrade replaces system packages, your SSH session can die, and if you have no other way in, you are locked out mid-migration with a half-converted server. Keep a VNC console open through your hosting provider before you begin, and confirm it works while the server is still healthy.
Naturally, before beginning, our technical team created backups of both the server and the accounts. Do not skip this. If the cPanel elevation script fails for any reason, it stops and rolls everything back to the pre-upgrade state, which is reassuring, but a rollback is not a substitute for a real backup you can restore from independently. As described here, the first steps are the same for everyone:
wget -O /scripts/elevate-cpanel \ https://raw.githubusercontent.com/cpanel/elevate/release/elevate-cpanel ; chmod 700 /scripts/elevate-cpanel
Pre-upgrade checks
/scripts/elevate-cpanel --check --upgrade-to=almalinux
If everything is fine, you can proceed to the next step. The checks exist to catch known incompatibilities in advance: unsupported plugins, custom repositories, or software that will not survive the transition. Resolve every blocker the script reports before you continue, because fixing them now is far easier than untangling a stalled upgrade later.
The actual upgrade
/scripts/elevate-cpanel --start --upgrade-to=almalinux
From here, everything went mostly smooth. All you need is patience. The elevation runs in stages, and each stage does substantial work behind the scenes, so long pauses are normal and not a sign that something has failed.
First issue: Stage 2
Cannot find a valid baseurl for repo: base/7/x86_64
How to resolve this issue
Use an editor like vi or nano. I use vi.
vi /etc/yum.repos.d/CentOS-Base.repo
Look for the [base] section, then uncomment the baseurl by removing the leading # on the baseurl line as shown in the following screenshot.

Type I to enter edit and insert mode, delete the # sign, press ESC to leave edit mode, then :wq to save and exit vi.
After that, type this command:
/scripts/elevate-cpanel -continue
I am using a VNC, and the elevation was supposed to happen as I wrote this post.
However, at some point, all I saw was this:
Note: The elevator= kernel parameter is deprecated.
I just waited (I did not panic at all), and the error disappeared. The elevation continued. This is the pattern for the whole process: an error scrolls past, you assume the worst, and then the script recovers on its own. Give it time before you intervene.
With Ctrl+C you exit the elevation process and you can check what is going on with this command:
/scripts/elevate-cpanel --status
In my case it was Stage 4 out of 5, so I switched to the log file to watch what was happening in real time.
/scripts/elevate-cpanel -log
Now, the process is stuck at:
[19:00] [Server1.jasminedirectory.com *] # /scripts/elevate-cpanel --log # -----------------------------> [INFO] # Monitoring existing rmupggrade (stage=4) ; Running: tail -f /var/log/elevate-cpanel.l og * 2024-03-30 14:36:41 (5551) [INFO] * 2024-03-30 14:36:41 (5521) [INFO] * 2024-03-30 14:36:41 (5521) [INFO] Running: /usr/bin/systemctl stop mysql * 2024-03-30 14:36:41 (5551) [INFO] * 2024-03-30 14:36:41 (5521) [INFO] Failed to stop mysql.service: Unit mysqld.service not loaded. * 2024-03-30 14:36:41 (5551) [INFO] * 2024-03-30 14:36:41 (5521) [INFO] Running: /usr/bin/systemctl enable tailwatchd * 2024-03-30 14:36:41 (5551) [INFO] * 2024-03-30 14:36:41 (5521) [INFO] Created symlink /etc/systemd/system/multi-user.target.wants/tailwatchd.service -> /etc/system d/system/tailwatchd.service. * 2024-03-30 14:36:41 (5551) [INFO] * 2024-03-30 14:36:41 (5521) [INFO] Running: /usr/bin/systemctl stop tailwatchd * 2024-03-30 14:36:41 (5551) [INFO] * 2024-03-30 14:36:41 (5521) [INFO] Running: /scripts/restartsrv_tailwatchd --stop * 2024-03-30 14:36:41 (5551) [INFO] * 2024-03-30 14:36:41 (5521) [INFO] Service "tailwatchd" is already stopped. * 2024-03-30 14:36:41 (5534) [INFO] tailwatchd stopped successfully. * 2024-03-30 14:36:41 (5551) [INFO] * 2024-03-30 14:36:41 (5521) [INFO] Running: /scripts/restartsrv_dovecot --stop * 2024-03-30 14:36:41 (5534) [INFO] Service "dovecot" is already stopped. * 2024-03-30 14:36:41 (5551) [INFO] dovecot stopped successfully. * 2024-03-30 14:36:41 (5521) [INFO] * 2024-03-30 14:36:41 (5534) [INFO] Running: /scripts/restartsrv_exim --stop * 2024-03-30 14:36:41 (5551) [INFO] Service "exim" is already stopped. * 2024-03-30 14:36:41 (5521) [INFO] Log Messages * 2024-03-30 14:36:41 (5534) [INFO] 2024-03-30 18:37:27 exim 4.96.2 daemon started: pid=11627, -q1h, listening for SMTP on port 25 (IPv6 and IPv4) and for SMTPS on port 465 (IPv6 and IPv4) * 2024-03-30 14:36:41 (5551) [INFO] exim stopped successfully. * 2024-03-30 14:36:41 (5521) [INFO] * 2024-03-30 14:36:41 (5534) [INFO] Running: /usr/bin/rm -rf /root/.cpanel/datastore * 2024-03-30 14:36:41 (5551) [INFO] * 2024-03-30 14:36:41 (5521) [INFO] Running: /usr/local/bin/ea_install_profile --install /etc/cpanel/ea4/profiles/custome/current.json --install ea_state_at_2024-03-30_14:12:59.mod ified_for_CentOS8.json * 2024-03-30 14:36:41 (5534) [INFO] * 2024-03-30 14:36:47 (5521) [INFO] * Warning! ignored package: ea-openssl11. It is in the profile's package list but does not exist, has an installation state of uninstalled.
I waited about 45 minutes. The cPanel Elevate script resumed on its own. Forty-five minutes of a frozen console feels much longer when a production server is at stake, but this is exactly the moment to resist touching anything. The log file is your friend here: if you can see disk activity or package operations progressing, the machine is working even when the screen looks dead.

After an automatic reboot, the cPanel Elevate status showed 5/5. In this stage the script ran a set of health checks.

After another reboot:

Now WHM started to work as expected. The OS had definitely changed. However, the cPanel version had not, so I upgraded it manually.

Just let the upgrade script do its job:

And there it is:

Why this migration matters for a directory
There is a business reason this work is worth doing carefully, not just a technical one. A directory earns its keep by being reliable and findable. If the server behind it is running an unsupported operating system with no security patches, every hour of downtime or every unpatched vulnerability chips away at the trust that makes people return. That trust is not abstract. Business is the most trusted of the four major institutions Edelman measures, at 62% trust in the 2025 Edelman Trust Barometer, and it is the only one respondents rate as both competent and ethical. A hosting stack that quietly stays current is part of keeping that promise to the businesses listed here and the visitors who rely on the listings.
Curated, human-edited resources depend on infrastructure that does not fall over. The value of being listed in a well-maintained place is that people can trust what they find, and that trust collapses fast if the site is slow, insecure, or unreachable. Keeping the server supported is unglamorous work that protects exactly that.
Why move from CentOS to AlmaLinux
Upgrading a cPanel server from CentOS to AlmaLinux becomes necessary for several concrete reasons:
- End of support for CentOS: cPanel announced it would no longer support CentOS 8 after the operating system reached its end of life in December 2021. AlmaLinux is one of the operating systems cPanel recommends as a replacement.
- cPanel compatibility: AlmaLinux is binary compatible with CentOS, so it works as a direct replacement without extensive reconfiguration of the server environment or software. cPanel and other applications behave on AlmaLinux as they did on CentOS.
- Security: When updates stop for a CentOS version, servers running it no longer receive security patches, which can leave them exposed to new threats. Migrating to a supported operating system like AlmaLinux keeps the patches coming.
- Long-term support: AlmaLinux is a stable, open-source, community-driven operating system with promised long-term support, which makes it a reliable choice for servers that need consistent performance and continuity.
- Community support: AlmaLinux was created in response to the early end of life for CentOS 8 and the shift of CentOS Stream to a rolling-release model, and it has attracted significant community backing. That involvement helps when you need to resolve issues and keep a stable environment for cPanel and other applications.
- Software updates: Regular updates matter for performance, security, and feature improvements. An operating system that receives them keeps the server compatible with the latest software releases, including cPanel updates.
By migrating to AlmaLinux, cPanel users keep their server environment secure, supported, and current, which protects the integrity and performance of the sites and services hosted on it. The practical takeaway: line up your VNC console and your backups first, expect long silent pauses, read the log rather than the frozen screen, and let the script finish before you assume it has failed. Do those four things and even a first-timer can get through it.

