Issue
How to manage settings with the PHP Selector cli?
Environment
CloudLinux OS 6(h)/7(h)/8/9
cPanel/Plesk/DirectAdmin/No panel
Solution
Here are the most useful commands
Change the PHP version for all users
# selectorctl --change-to-version=5.3 --version=native #this command changes PHP version to 5.3 for all users with native version
or, you can change PHP version for all users using the commands below:
# cd /var/cpanel/users # ls -1 | awk '{ print "selectorctl --set-user-current=5.3 --user="$1 }' | sh
Reset user extensions to default settings
selectorctl --list-users --version=5.6 | sed -e 's/,/\n/g' | sed 's/^/selectorctl --reset-user-extensions --version=5.6 --user=/'
If you run it:
1. The script will generate a list of users who use PHP 5.6
2. The script will generate a separate command to reset the modules for each user
3. If you add | sh at the end of the command, the modules will be reset for all users that have PHP 5.6 Example:
selectorctl --list-users --version=5.6 | sed -e 's/,/\n/g' | sed 's/^/selectorctl --reset-user-extensions --version=5.6 --user=/' | sh
Enable some PHP extension(s) for all existing accounts
--for-all-users: | Allows to enable/disable extensions for all users with the required PHP version. Works only with --enable-user-extensions or --disable-user-extensions option. |
$ selectorctl --enable-user-extensions=apm --version=5.6 --for-all-users
To get a current PHP version for a user
selectorctl --user-current --user=UU
To list users using specific PHP version
selectorctl --list-users --version=5.6
To change PHP version for a user
selectorctl --set-user-current=5.3 --user=UU
Enabling some extensions for a user
selectorctl --enable-user-extensions=pdo,phar --version=5.3 --user=UU
To disable extensions, use a similar command but with the --disable-user-extensions parameter.
List user extensions
selectorctl --list-user-extensions --version=5.3 --user=UU
Replace option in users php.ini
selectorctl --replace-options=log_errors:on,display_errors:on --version=5.3 --user=UU
To enable extensions for all PHP versions:
for i in $(selectorctl -S | grep 'e' | awk '{ print $1}' | grep -v 'native'); do selectorctl --enable-extensions=<extensions1,extension2,...> --version=$i; done
To enable extensions for all existing users and PHP versions:
for i in $(selectorctl -S | grep 'e' | awk '{ print $1}' | grep -v 'native'); do selectorctl --enable-user-extensions=<extensions1,extension2,...> --version=$i --for-all-users; done
Comments
0 comments
Please sign in to leave a comment.