How to Install DirectAdmin 1.709 on AlmaLinux 9

Install DirectAdmin on a clean AlmaLinux 9 server: hostname and IP requirements, the setup.sh command with your licence key, and the first login on port 2222.

Published
Reading time
4 min

DirectAdmin installs with one command, but the command only goes smoothly on a server that was prepared for it: the right OS, a hostname that is not your main domain, a static IP and enough memory. This is the sequence we follow on a fresh AlmaLinux 9 server for DirectAdmin 1.709, from an empty OS to the first login on port 2222.

Why AlmaLinux 9

DirectAdmin supports AlmaLinux, Rocky and RHEL 8, 9 and 10, Debian 11 and 12, and Ubuntu 22.04, 24.04 and 26.04, on both x86-64 and arm64. Any of them works. For a new server we pick AlmaLinux 9 because CustomBuild has the longest track record on it, every PHP and MariaDB build is available, and it keeps one door open: CloudLinux 9 is an in-place conversion of AlmaLinux 9, so if the server later needs per-user resource limits you can convert it to CloudLinux without reinstalling.

Before you run anything

The installer expects a clean, minimal OS. Nothing else should be on it: no Apache, no MariaDB, no other panel. If the server has been used for anything, reinstall the OS first. It is quicker than untangling conflicts afterwards.

Four things to check on the fresh system:

  • Memory. The minimum is 4 GB of RAM and 4 GB of swap. CustomBuild compiles PHP during the install, and on less it runs out of memory halfway through.
  • A static IPv4 address. The licence is bound to the server's IP, so the key must have been issued for this address.
  • A hostname that is not a domain you will host. Use something like server1.example.com, never example.com itself. DirectAdmin treats the hostname as the server's own name, and using a customer domain there causes mail and DNS trouble later. Create an A record for the hostname in DNS before you start, so the panel certificate can be issued straight after.
  • Disk quotas. DirectAdmin uses them for per-user disk limits. A standard AlmaLinux 9 install on ext4 or XFS is fine; some container-based VPS templates lack quota support and the installer will warn you.

Set the hostname and update the OS, then reboot so you are on the current kernel:

bash
hostnamectl set-hostname server1.example.com
dnf update -y && reboot

Run the installer

Log in as root and run the setup script with your licence key from the DirectAdmin client area:

bash
bash <(curl -fsSL https://download.directadmin.com/setup.sh) 'your-licence-key'

The script downloads DirectAdmin, verifies the licence against the server IP and hands over to CustomBuild. It asks nothing if it can work everything out; when it cannot, it prompts for the hostname and the interface to use.

You can answer those questions in advance with environment variables, which is how we run it so the result is the same on every server:

bash
DA_HOSTNAME=server1.example.com \
DA_ADMIN_USER=admin \
DA_NS1=ns1.example.com DA_NS2=ns2.example.com \
bash <(curl -fsSL https://download.directadmin.com/setup.sh) 'your-licence-key'

DA_ADMIN_PASSWORD sets the admin password if you want to choose it rather than have one generated. If you run the script without a key, it starts a small web installer instead and prints a URL; open that in a browser, paste the key there and the rest is the same.

What the installer builds

The heavy lifting is done by CustomBuild in /usr/local/directadmin/custombuild. On a default install it sets up Apache with PHP running as PHP-FPM, MariaDB, exim and dovecot for mail, BIND for DNS, an FTP server, Roundcube webmail, phpMyAdmin and SpamAssassin. Expect 15 to 40 minutes depending on the CPU, most of it compiling PHP.

The last screen of output shows the panel URL and the admin login. Copy it somewhere safe, but do not worry if you close the terminal: the same details are written to /usr/local/directadmin/conf/setup.txt, readable by root only. The MariaDB root password is in /usr/local/directadmin/conf/mysql.conf.

First login

Open https://server-ip:2222 (or https://server1.example.com:2222 if the A record is already live). The browser will complain about the certificate because the panel starts with a self-signed one; accept it for now. Log in as admin with the password from setup.txt.

You land on the Admin Level of the Evolution skin. Two things to do before anything else: change the admin password from the account menu at the top right, and confirm the licence and version under Admin Level → Server Manager → Licensing/Updates. If the page does not load at all, check that port 2222 is open in firewalld (firewall-cmd --list-ports) and in any firewall your provider runs in front of the server.

Check the state of the server

A few commands tell you the install is healthy:

bash
da version
systemctl status directadmin
cd /usr/local/directadmin/custombuild && ./build versions

./build versions lists everything CustomBuild installed next to the latest available version, so you know immediately whether anything is behind. The panel's own log is /var/log/directadmin/error.log, and background jobs that fail write to /var/log/directadmin/errortaskq.log. If something looks wrong during the first hour, those two files usually say why.

Anything you want to change about the build, from the PHP versions to the web server, is done with ./build set in that directory and never by editing options.conf by hand. The PHP version guide shows the pattern.

What to do next

The server works, but it is not finished. The panel still has a self-signed certificate, nameservers and backups are not set, the firewall is not installed and updates are on whatever channel the installer chose. Those are the first steps after installing DirectAdmin, and they take about half an hour.

On a VPSPioneer managed VPS we do this install, the first steps and the ongoing CustomBuild updates as part of the service, so you start at the point where you create your first account.

#directadmin#almalinux#installation#control-panel

Keep reading

More from DirectAdmin

All guides

DirectAdmin

DirectAdmin for Beginners: A Tour of the Evolution Skin

How DirectAdmin's Admin, Reseller and User levels fit together, how to switch levels and log in as a user, and where the ten everyday jobs live in Evolution.

4 min read →

DirectAdmin

DirectAdmin First Steps: 10 Things to Do After Installing

The ten things to set on a new DirectAdmin server before hosting anything: panel SSL, hostname, nameservers, updates, CSF, brute force blocking and backups.

4 min read →

CloudLinux

CloudLinux 9 vs CloudLinux 10: Which One to Install in 2026

CloudLinux 9.8 and 10.2 compared: kernels, lifecycles, panel readiness, PHP and MariaDB availability, the upgrade path, and which to pick for a new server.

4 min read →