Server IP : 192.158.238.246 / Your IP : 3.145.179.147 Web Server : LiteSpeed System : Linux uniform.iwebfusion.net 4.18.0-553.27.1.lve.1.el8.x86_64 #1 SMP Wed Nov 20 15:58:00 UTC 2024 x86_64 User : jenniferflocom ( 1321) PHP Version : 8.1.32 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /opt/cloudlinux/venv/lib/python3.11/site-packages/clwpos/php/ |
Upload File : |
from __future__ import absolute_import import os import re import subprocess from typing import List from clcommon.utils import is_ubuntu from clwpos.php.base import PHP SELECTOR_UTIL = "/usr/bin/selectorctl" def create_generic_php(alt_php_identifier: str, root_path=None, base_cls = None): if root_path is None: # create alt versions by default php_root_dir = f'/opt/{alt_php_identifier.replace("-", "/")}/' else: php_root_dir = root_path modules_base_dir = 'usr/lib64/php/modules/' if not is_ubuntu() else 'usr/lib/x86_64-linux-gnu/php/modules/' base_cls = base_cls if base_cls else PHP return base_cls( identifier=alt_php_identifier, version=f'{alt_php_identifier[-2]}.{alt_php_identifier[-1]}', modules_dir=os.path.join(php_root_dir, modules_base_dir), dir=php_root_dir, bin=os.path.join(php_root_dir, 'usr/bin/php'), ini=os.path.join(php_root_dir, 'link/conf/default.ini') ) def get_alt_php_versions() -> List[PHP]: """ Get list of installed alt-php versions. """ alt_dir = '/opt/alt' pattern = re.compile(r'^php\d{2}$') alt_php_versions = [ create_generic_php(f'alt-{dirname}') for dirname in os.listdir(alt_dir) if pattern.match(dirname) ] return alt_php_versions def disable_selector_extensions(ext_list, version, logger): """ To turn off extensions in selector for avoiding them loading in separate places!!! """ target_users = [] users_with_version = subprocess.run([SELECTOR_UTIL, "--list-users", "--version", version], capture_output=True, text=True).stdout if users_with_version: target_users = [line.strip() for line in users_with_version.strip().split(",") if line] if not target_users: logger.info("No users found using selector with version %s", version) return logger.info("Turning off those extensions=%s for version %s, for users=%s", str(ext_list), version, str(target_users)) for user in target_users: disable_result = subprocess.run([SELECTOR_UTIL, "--disable-user-extensions", ",".join(ext_list), "--version", version, "--user", user], capture_output=True, text=True) logger.info("Disabling extension result=%s for user=%s", str(disable_result), user) def update_selector_built_in_extensions(logger): """ To make extension non-editable in CloudLinux Selector (cannot turn it off manually) """ update_res = subprocess.run(["/usr/share/l.v.e-manager/utils/cache_phpdata.py"], capture_output=True, text=True) logger.info("Selector built-in extensions updated=%s", str(update_res))