AlmaLinux 9 is the path most hosting operators take after CentOS 7 hit EOL — binary-compatible with RHEL 9, a ten-year support window, and no surprise licensing changes. Plesk Obsidian has supported it since 18.0.50, and the install is shorter than the equivalent Ubuntu run because RHEL-family defaults already match what Plesk expects.
This guide covers a clean install on a fresh AlmaLinux 9 box. If you're standing up your first Plesk node, the Ubuntu 24.04 install guide is the parallel — pick whichever distribution matches the rest of your fleet rather than treating them as interchangeable.
Before you start
- A VPS or dedicated server with 2 vCPU, 4 GB RAM minimum (Plesk runs on 2 GB but PHP-FPM pools and the Java-based update manager will swap)
- Fresh AlmaLinux 9 with root SSH access — the
Minimal Installprofile is fine - A resolving hostname like
plesk.example.compointing at the server's public IP, with matching forward and reverse DNS - A Plesk license — grab one in 60 seconds if you don't already have a key
- Ports 80, 443, 8443, 8447 open inbound, plus mail and DNS ports (see Step 4)
The installer needs around 40 GB free on /. If you're on a split-partition layout, make sure /var and /opt have room — Plesk's MariaDB data lives in /var/lib/mysql and its PHP builds in /opt/plesk/php.
Step 1 — Prepare AlmaLinux 9
Set the hostname, patch the box, and reboot before touching the installer. Plesk's pre-flight checks read /etc/hostname directly and complain if it doesn't resolve.
hostnamectl set-hostname plesk.example.com
dnf upgrade --refresh -y
dnf install -y wget tar bzip2 epel-release
reboot
After the reboot, confirm the hostname resolves both ways:
hostname -f
dig +short plesk.example.com
dig +short -x <server-ip>
All three should agree. If reverse DNS is wrong, fix it at your provider before continuing — Plesk's mail stack uses the PTR record to set the SMTP banner, and a mismatch tanks deliverability from day one.
Step 2 — Run the Plesk auto-installer
The one-click installer is the path of least resistance — it pulls the latest stable Plesk, picks sensible defaults, and configures every service in one pass:
sh <(curl https://autoinstall.plesk.com/one-click-installer || \
wget -O - https://autoinstall.plesk.com/one-click-installer)
Expect 12–20 minutes on a 2 vCPU box. The installer fetches around 600 MB of packages, builds nginx + Apache, MariaDB 10.11, Postfix + Dovecot, BIND, and PHP 7.1 through 8.4 from Plesk's repo. If you want to pick components manually instead — for example, skipping the mail stack on a web-only node — use the interactive installer:
dnf install -y plesk-installer
plesk-installer
The TUI lets you pick the Recommended, Full, or Custom profile. For most hosting workloads the Recommended profile plus the WordPress Toolkit add-on is the right choice.
Step 3 — First login and license activation
When the installer finishes it prints a one-time login URL. Open it in a browser, or generate a fresh one from the server:
plesk login
In the setup wizard:
- Accept the EULA
- Enter your license key from the Panellicense dashboard — paste, don't retype, the dashes matter
- Set the administrator email (used for license renewals and security alerts — make it a real inbox, not
root@localhost) - Set a strong admin password — Plesk enforces 12+ characters with mixed case and a symbol
If you skipped the license at install time, activate later with:
plesk bin license --install <YOUR-KEY>
plesk bin license --info
Pick the right tier before you activate — moving up later is fine but downgrading needs a support ticket. The Plesk license tiers explainer covers when Web Pro stops making sense and Web Host starts paying for itself.
Step 4 — Open the right firewall ports
AlmaLinux 9 runs firewalld by default. The Plesk installer adds its own zone but doesn't always open every service port — especially if you skipped mail or DNS. Add the lot in one shot:
firewall-cmd --permanent --add-service={http,https,smtp,smtps,submission,imap,imaps,pop3,pop3s,ftp,dns}
firewall-cmd --permanent --add-port=8443/tcp # Plesk panel
firewall-cmd --permanent --add-port=8447/tcp # Plesk installer/updater
firewall-cmd --permanent --add-port=21/tcp # FTP control
firewall-cmd --permanent --add-port=49152-65534/tcp # passive FTP
firewall-cmd --reload
Skip the FTP ports if you don't intend to offer FTP — Plesk's File Manager and SSH-only access are usually safer.
Step 5 — Post-install checklist
The defaults are fine but a few settings save support tickets later:
- Enable automatic security updates under Tools & Settings → Update and Upgrade Settings → Plesk Update Settings. Major version upgrades stay manual; security and minor updates apply overnight.
- Install ImunifyAV (free) or upgrade to Imunify360 for real-time WAF and brute-force protection — see the Imunify product comparison for which tier you actually need.
- Install the WordPress Toolkit extension if it isn't already there — it's free with every license tier above Web Admin.
- Provision a server-wide Let's Encrypt certificate for the hostname so panel logins, FTP, and mail use a trusted cert. Tools & Settings → SSL/TLS Certificates → Renew.
- Turn on fail2ban under Tools & Settings → IP Address Banning (Fail2Ban), with jails for
plesk-panel,ssh, andpostfix-saslat minimum. - If you're running on CloudLinux instead of stock AlmaLinux, the CloudLinux vs AlmaLinux for hosts writeup covers what changes.
Troubleshooting common install failures
Installer aborts with Failed to download repository metadata
Usually a DNS issue — AlmaLinux 9 Minimal doesn't always pre-populate /etc/resolv.conf. Confirm cat /etc/resolv.conf lists a working nameserver, add 1.1.1.1 if it's empty, and re-run.
Cannot find a valid baseurl for repo: plesk-release
The auto-installer couldn't add the Plesk repo. Add it manually and re-run the TUI installer:
rpm -Uvh https://autoinstall.plesk.com/plesk-release.rpm
dnf install -y plesk-installer
plesk-installer
MariaDB fails to start after install
Almost always /var running out of inodes or space. Check df -i /var and df -h /var. Free space then systemctl start mariadb && plesk repair installation.
Panel reachable on :8443 but mail won't deliver
Reverse DNS or SPF — Plesk's pre-flight doesn't catch either. Confirm the PTR matches plesk.example.com and that you have an SPF record. The Plesk outbound mail throttling guide covers the rest of the deliverability setup.
Does Plesk support AlmaLinux 9?+
Should I disable SELinux before installing Plesk?+
Can I install Plesk on AlmaLinux 8 instead?+
How long does the Plesk install take on AlmaLinux 9?+
Do I need CloudLinux on top of AlmaLinux 9 for shared hosting?+
Can I migrate from cPanel to Plesk on AlmaLinux 9 directly?+
Next steps
- Plesk license tiers explained — pick Web Admin, Web Pro, or Web Host based on actual account counts
- Migrate from cPanel to Plesk once the new box is ready
- cPanel vs Plesk in 2026 — the comparison most operators read before committing