PHP Selector это компонент CloudLinux, который базируется на CageFS и позволяет пользователям выбирать версию PHP, параметры и необходимые модули.

Значения по умолчанию — версия PHP и дефолтные модули задаются в файле /etc/cl.selector/defaults.cfg.

В файле /etc/cl.selector/global_php.ini задаются стандартные параметры php.ini для ВСЕХ версий PHP. После изменения этого файла, необходимо выполнить:

/usr/sbin/cagefsctl --setup-cl-selector

Стандартные значения для конкретных версий PHP находятся в файлах /opt/alt/phpXX/etc/php.ini, где XX — это версия PHP. Например, дефолтный php.ini для PHP 5.3 находится здесь: /opt/alt/php53/etc/php.ini.
В этих файлах можно задавать специфичные для версии PHP параметры php.ini.

Пользователи могут изменять параметры php.ini через панель управления хостингом (если имеется плагин). После изменения стандартных параметров, создается файл /etc/cl.php.d/alt-phpXX/alt_php.ini, который доступен только из CageFS, а значит он свой для каждого пользователя.

Можно изменять набор параметров php.ini, доступных для редактирования в файле /etc/cl.selector/php.conf.

Команда cagefsctl —rebuild-alt-php-ini пересобирает пользовательские alt_php.ini файлы, с учетом выбранных пользователем специфичных опций php.ini из /home/USER/.cl.selector/alt_phpXX.cfg.

Узнать выбранную версию PHP:

/usr/bin/cl-selector --current=php --user=USERNAME

Админ может менять любые опции php.ini командой /usr/bin/piniset.

Команда меняет параметр PHP upload_max_filesize для пользователя USERNAME:

/usr/bin/piniset -r 'upload_max_filesize:16M' -u USERNAME 

Более детально о PHP Selector: http://docs.cloudlinux.com/index.html?php_selector.html

#!/bin/bash

# Пример скрипта. Меняет версию PHP на DEFAULT_PHP для пользователей, у которых php=native.
# Можно имзенить php=native на нужную версию, например php=5.2.

DEFAULT_PHP="5.3"

for user in `ls /home`;
do
    userDir=/home/${user}
    if [[ -f ${userDir}/.cl.selector/defaults.cfg ]]
        then
        phpv=`cat ${userDir}/.cl.selector/defaults.cfg | grep "php="`

        if [ $phpv == "php=native" ];
        then
            echo ${user}: ${phpv} "-> " ${DEFAULT_PHP}
            /usr/bin/cl-selector --user=${user} --select=php --version=${DEFAULT_PHP}
        fi
    fi
done

Добавить комментарий