DirectAdmin
This page is for hosting companies that run DirectAdmin servers and want to offer Exponential on them. It answers what the Exponential sources say about DirectAdmin, which panel tasks an Exponential site needs, and how to test the combination before you sell it.
Warning
.htaccess slows down every request. When .htaccess files are enabled (AllowOverride anything but None), let alone
used, Apache looks for them and reads and evaluates them on every request, in every directory of the path, and
page loading times go up drastically (measured). The only real fix is to switch the feature off for
the virtual host: AllowOverride None in the HTTPS virtual host, and the rules in the virtual host's own
configuration as mod_rewrite rules. That is far faster in production speed tests and well worth the time it takes
to optimize a production configuration. Switch over right away: copy the rules of the
example HTTPS virtual host into your virtual host (with the static cache, also
staticcache_offload.conf), set AllowOverride None, run apachectl configtest, reload Apache and
test the site. The same rules for other servers: nginx, LiteSpeed,
Caddy, IIS, Velocity (built in); where virtual host rules go in a control
panel: Plesk, cPanel, DirectAdmin, ISPConfig.
On LiteSpeed or OpenLiteSpeed, the server's own page cache can also answer anonymous visitors and crawlers without PHP: Page caching with LiteSpeed and OpenLiteSpeed.
Note
The Exponential sources describe no DirectAdmin screens, menus or file locations. This page refers to panel features generically; check DirectAdmin's documentation for how your version does each task.
Contents
- What the sources say
- Questions about your DirectAdmin servers
- The panel tasks for an Exponential site
- Web server choices on the server
- A test plan
- Checklist
What the sources say
DirectAdmin appears in exactly two places in the sources, both in Operating system support:
- In the tier 3 table, in one row shared with cPanel: "EasyApache (EA-PHP 8.x), per-account PHP" as the reason the
row should work, and "shared hosting may forbid long-running processes, so Velocity may not be allowed; use Apache
or LiteSpeed with
.htaccess" as what to watch. The point that applies to DirectAdmin is a per-account PHP 8.x (Tier 3). - In "Containers, cloud and hosting panels": "cPanel and DirectAdmin are tier 3; on shared hosting without shell access, the setup wizard in the browser is the installer" (Containers, cloud and hosting panels).
Tier 3 is "a reasoned expectation, not a test result". Nobody in the project has watched Exponential run on DirectAdmin.
Questions about your DirectAdmin servers
Answer these for your own server build before writing a product description:
| Question | Why it matters for Exponential |
|---|---|
Which PHP 8.x versions can an account choose, and are intl and xsl built in? | both are critical tests of the setup wizard (2.4) |
| Does PHP run as the account's own user (PHP-FPM per account or equivalent)? | the one-user rule for var/ and isolation between accounts (8.7.2) |
Which web server serves the accounts, and does it read .htaccess? | the rewrite rules ship as .htaccess_root |
Is open_basedir set per account? | the wizard only warns, but tools that look for system binaries are affected (ezupdate) |
Which functions are in disable_functions? | the cronjob page needs proc_open, exec and posix_kill (Cronjobs) |
| Do accounts get a shell? | Composer and the console need one; without it the setup wizard installs |
| Which database servers can accounts create databases on? | the official order and its practical minimums |
The panel tasks for an Exponential site
| Task | What Exponential needs | Details |
|---|---|---|
| PHP version | 8.0 or later for web and command line, the same extensions in both | PHP selection and FPM pools |
| PHP settings | memory_limit 64M or more, max_execution_time 30 or more, date.timezone, file_uploads, allow_url_fopen; upload sizes for the editors' files | 2.5 |
| Document root | the installation root, where index.php is | 8.5.1 |
| Rewrite rules | .htaccess copied from .htaccess_root; with a shell, as the account's user: php bin/php/console exp:setup:htaccess --apply | 13.2, from the console |
config.php (optional) | config.php-RECOMMENDED copied to config.php: php bin/php/console exp:setup:config --apply, values with exp:config:set | from the console |
| Database | in the official order: 1. SQLite 3 (no server) · 2. PostgreSQL · 3. MongoDB · 4. MariaDB · 5. Oracle · 6. MySQL; Microsoft SQL Server is known to be possible with additional work at this time | Databases and users |
| Cron | runcronjobs.php with the account's PHP, every few minutes for frequent | Cron and shell access |
| Certificate | HTTPS for every name of the site, redirect from HTTP | TLS certificates in panels |
Web server choices on the server
The sources do not say which web server a DirectAdmin server runs. What they say about the candidates:
| Server | Status in the sources |
|---|---|
| Apache httpd 2.4 with PHP-FPM | tier 1; rules in .htaccess_root |
| nginx with PHP-FPM | tier 2; the server block is "derived, not shipped" (8.6) |
| LiteSpeed, OpenLiteSpeed | tier 3; "reads Apache's rewrite rules in most cases" |
| nginx in front of Apache | Apache reads .htaccess; set the trusted-proxy settings as for any proxy in front (13.10) |
Source: Web servers. If accounts are served by nginx alone, an account cannot use
.htaccess; the derived server block must then be part of the server configuration you manage.
A test plan
| Step | Pass when |
|---|---|
| Fresh account, setup wizard | every critical test passes; site and /admin answer |
/settings/site.ini, /.env, /composer.json from outside | 404 or an Exponential page, never the file |
| Upload an image | image and variations served |
| Cron line from the panel | the run appears on Setup > Cronjobs |
| Backup and restore into a second account | restored site works |
| Two accounts on one server | neither account's PHP can read the other's settings/override |
Report a successful run to the project so the tier can move up (The four tiers).
Checklist
- To do: The questions above answered for your server build and written down.
- To do: PHP 8.x with every required extension; one PHP user per account.
- To do: Document root,
.htaccessand database ready. - To do: Cron and certificate set up.
- To do: The test plan passed, including the isolation test.
The LiteSpeed page cache on DirectAdmin. With LiteSpeed as the web server, its page cache answers anonymous visitors and crawlers without PHP. Switch it on per site with the commented block of .htaccess_root in the domain's .htaccess, or paste litespeed-page-cache.conf into Custom HTTPD Configurations for the domain. Step by step: Page caching with LiteSpeed and OpenLiteSpeed.
Related pages
- Control panels: overview, cPanel
- Shared hosting, Multi-tenant isolation
- Operating system support
- Setting up .htaccess and config.php from the console
- Free documentation: this page is free to copy, translate and improve under the GNU FDL 1.3.
Become an Exponential Partner
Partners share their information, provide funding, contribute back and develop the products with us, and that is how Exponential grows. A partner website and dashboard are planned for mid-2027: please become a partner today to speed up our growth rate and land new features faster.