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 versionOr, you can change the 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 }' | shReset 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 who 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=/' | shEnable 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-usersTo get the current PHP version for a user
selectorctl --user-current --user=UUTo list users using a specific PHP version
selectorctl --list-users --version=5.6To change the PHP version for a user
selectorctl --set-user-current=5.3 --user=UUEnabling some extensions for a user
selectorctl --enable-user-extensions=pdo,phar --version=5.3 --user=UUTo disable extensions, use a similar command but with the --disable-user-extensions parameter.
List user extensions
selectorctl --list-user-extensions --version=5.3 --user=UUReplace the option in users' php.ini
selectorctl --replace-options=log_errors:on,display_errors:on --version=5.3 --user=UUTo 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; doneTo 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.