๐Ÿ“˜ PHP Selectorโ€™s Useful Commands (Change PHP Versions/Extensions for All Users, etc.)

๐Ÿงฉ Issue

How to manage settings with the PHP Selector CLI on a CloudLinux server.

๐Ÿงฑ Environment

  • OS: CloudLinux OS 6(h), 7(h), 8, 9
  • Control Panel: cPanel, Plesk, DirectAdmin, or No Panel
  • Tool: selectorctl โ€“ CloudLinuxโ€™s PHP Selector CLI tool

๐Ÿ”ง Common PHP Selector CLI Commands

โœ… Change the PHP Version for All Users

Option 1: Change only for users using the native version:

selectorctl --change-to-version=5.3 --version=native

Option 2: Change PHP version for all users regardless of current version:

cd /var/cpanel/users
ls -1 | awk '{ print "selectorctl --set-user-current=5.3 --user="$1 }' | sh

๐Ÿ” Reset User Extensions to Default for a Specific PHP Version

Example for PHP 5.6:

selectorctl --list-users --version=5.6 | sed -e 's/,/\n/g' | sed 's/^/selectorctl --reset-user-extensions --version=5.6 --user=/' | sh

๐Ÿ’ก This script:

  • Lists users using PHP 5.6
  • Resets each user’s extensions to default
  • Automatically runs the reset commands

โš™๏ธ Enable PHP Extension(s) for All Existing Accounts

Enable apm extension for all users on PHP 5.6:

selectorctl --enable-user-extensions=apm --version=5.6 --for-all-users

๐Ÿ‘ค User-Specific Commands

Get Current PHP Version of a User:

selectorctl --user-current --user=USERNAME

List All Users Using PHP 5.6:

selectorctl --list-users --version=5.6

Change PHP Version for a Specific User:

selectorctl --set-user-current=5.3 --user=USERNAME

Enable Specific Extensions for a User:

selectorctl --enable-user-extensions=pdo,phar --version=5.3 --user=USERNAME

Disable Extensions for a User:

selectorctl --disable-user-extensions=phar --version=5.3 --user=USERNAME

List Extensions for a User:

selectorctl --list-user-extensions --version=5.3 --user=USERNAME

Replace php.ini Options for a User:

selectorctl --replace-options=log_errors:on,display_errors:on --version=5.3 --user=USERNAME

๐Ÿ”„ Bulk Commands for All PHP Versions

Enable Extensions for All Installed PHP Versions:

for i in $(selectorctl -S | grep 'e' | awk '{ print $1}' | grep -v 'native'); do
  selectorctl --enable-extensions=ext1,ext2 --version=$i
done

Enable Extensions for All Users and All PHP Versions:

for i in $(selectorctl -S | grep 'e' | awk '{ print $1}' | grep -v 'native'); do
  selectorctl --enable-user-extensions=ext1,ext2 --version=$i --for-all-users
done

๐Ÿ“Œ Notes

  • Replace USERNAME with the actual cPanel/Plesk user.
  • Replace ext1,ext2 with the desired extensions (e.g., pdo,phar,soap).
  • The --for-all-users flag only works with --enable-user-extensions or --disable-user-extensions.
Scroll to Top