Version 1.57.3

Released: 2019-07-06

New setting: notify_user_at_full_quota=1 new

New user.conf option:

sentnotice_quota_full=yes|no

related to the user.conf options (below) to send an notice when the quotas or inodes have reached 100% usage (either quota or inode), beyond the other lower threshold percentages.

sentwarning_inode=yes|no
sentwarning_quota=yes|no
sentwarning_bandwidth=yes|no

where they track if a notice has been sent to the User for a given threshold being hit.

The new one, enabled by default with the directadmin.conf option:

notify_user_at_full_quota=1

will sent a notice to the User via the Message System (and via email if that's setup in the Message System to an account not limited by their quotas).

This new 100% check is on BOTH quotas and indoes, as either one would prevent save/email issues, thus User should be notified for either.

If multiple limits are hit at during the same tally, only one email will be sent, but each sentnotice_/sentwarning_ will be enabled accordingly.

CMD_FILE_MANAGER: one-click download tar, tar.gz, zip archive of directory new

If you're in CMD_FILE_MANAGER, a given path now supports a one-click download of that compressed folder.

Can be done with GET or POST (not considered a state-change)

eg:

CMD_FILE_MANAGER/Maildir?action=download_compressed_folder&type=zip

type can be one of:

  • zip
  • tar.gz
  • tar

or omitted entirely, which defaults to tar.gz.

The structure of all compress files are all relative to /home/username.

So if you were to do this on the /domains/domain.com/public_html path, the zip will have:

domains/domain.com/public_html/*

in that tree. This may be changed to be relative, meaning the top level would just be public_html/*.

Automatic cpmove conversion during DA creation restore new

Based on this guide:

https://forum.directadmin.com/showthread.php?t=58059

DA will automatically scan for cpanel cmove-fred.tar.gz type files.

If selected during restore, DA will check for the script:

/usr/local/directadmin/scripts/cpanel_to_da/cpanel_to_da.sh.

and will convert the cpmove file to a user.creator.fred.tar.gz file.

** gz files MUST start with "cpmove-", else DA will assume they're in the DA backup format.

If this script is not present, DA will run:

./build update
./build cpanel_to_da

to attempt to install it automatically, no ssh login required.

Should this fail, a fall-back to the old location is checked at:

/root/cpanel_to_da/cpanel_to_da.sh

in case you already had a copy of it there, but we do recommend you delete the root variant at some point, as the custombuild version may receive updates from time to time (managed by your own preferred build update method)

As the "creator" is not visible in the cpmove filename, DA will scan the entire resulting restore directory for any files ending with ".fred.tar.gz".

There can only be 1 instance of this User's gz. If DA finds 2+ files ending in that, the restore of that file will not happen.

You can then pick the correct file and restore it later, normally (as it should already be converted)

SECURITY:

Please note, this script access many areas and root access is required, it has a high-level access.

You should only run it on cpmove files you know and trust that you have created.

As a result, only the Admin Level -> Backup/Transfer can use this script.

CMD_JSON_OPTIONS new

Tool to get and store simple key & values.

Only in json format (no CMD_API variant)

CMD_JSON_OPTIONS

method: GET

retrieves the json that was saved for the current skin.

CMD_JSON_OPTIONS
method: POST
action=save_options_json
name=evolution
user_options.json={FULLJSON}

save the key & value into the container.

Optional addition:

delete=yes

in which case user_options.json is not needed.

CMD_JSON_LANG

method: GET

CMD_JSON_LANG?json=yes&domain=test.com&request=global

will include the "user_options.json" sub-array in the output, containing the same values.

CONTAINER

the json will be stored in:

/usr/local/directadmin/data/users/usernane/skin_customizations/evolution/user_options.json

The feature is disabled for the demo, so you'd need to use a cookie or just disable the ability to save.

Ability to hide CPU info in Server Info new

New directadmin.conf option with internal default:

cpu_in_system_info=2

where you can hide all cpu info by adding this to the directadmin.conf:

cpu_in_system_info=0

But if you wish still show a Thread Count but hide the details about those cores, then use:

cpu_in_system_info=1

Tally log rotation to issue httpd USR1 instead of HUP fixed

During the full tally, the first thing DirectAdmin does is a quick rename of the domain .log files to .log.1.

This requires an immediate re-opening of the logs so the new values are created and filled.

DA would previously send an HUP signal to the master httpd pid, but if your system has:

graceful_restarts=1

this will now be respected, and will instead issue a USR1 signal.

Note, that any failures in the code (eg: httpd.pid cannot be found or read) will end in DA issuing httpd reload to the task.queue.

On systemd boxes, this is a graceful restart anyway.

openlitespeed.conf: subdomains to point to their own log (TEMPLATES) fixed

Bug where subdomains ended up in domain.com.log, when they should have gone to subdomain.com.sub.log.

New LOG_NAME specified in the openlitespeed.conf to change it for each case.

Reseller: CMD_SSH_KEYS cannot edit fixed

Relating to the new POST referer checks, the "Edit" button on the "Reseller Level -> SSH Keys" would throw a warning about not being able to use GET, when GET is the desired method.

Check removed, as it's not a state change.

Lower default php-fpm max_children to 10 for NEW installs (TEMPLATES) fixed

We had previously increased the php-fpm setting up to 100 after a few reports of issues where it wasn't high enough.

For the bulk of everyone using it, 10 should be plenty for 99.99% of all websites, and 100 is an edge case.

A high number like this isn't as safe if, for example, a php site spawns too many processes.

A new directadmin.conf option is now present, with an internal default of:

php_fpm_max_children_default=100

but for new DirectAdmin installs, the directadmin.conf template will have:

php_fpm_max_children_default=10

so that's what new installs will get.

All existing installs will still have the previous 100, so we don't break any larger sites that did indeed need the higher limit.

If you know you don't need this 100 limit (and you probably don't), then just add:

php_fpm_max_children_default=10

to your directadmin.conf and restart directadmin.

Follow that with:

cd /usr/local/directadmin/custombuild
./build rewrite_confs

to rewrite user php-fpmXX.conf files with the new lower limit.

=========================

If you need to increase this on a per-domain basis, go to:

Admin Level -> Custom Httpd Config -> domain.com : click "php-fpm" for this domain.

Add this to the |CUSTOM1| token textarea:

|?MAX_CHILDREN=100|

which will override the 10 value, set in the |MAX_CHILDREN_DEFAULT| token (which is filled from php_fpm_max_children_default)

Various security fixes (SECURITY) fixed

General security additions or optimizations, including cleaning up old code.

Not an exhaustive audit.

Due to the introduction of a new feature (cPanel import tool) a full security audit is recommended.

Last Updated: