SCDNG PELER
Server IP : 144.76.124.212  /  Your IP : 216.73.216.94
Web Server : LiteSpeed
System : Linux l4cp.vnetindia.com 4.18.0-553.40.1.lve.el8.x86_64 #1 SMP Wed Feb 12 18:54:57 UTC 2025 x86_64
User : rakcha ( 1356)
PHP Version : 7.4.33
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /proc/self/root/opt/cpguard/app/scripts/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME ]     

Current File : /proc/self/root/opt/cpguard/app/scripts/cyberpanel_domain_list.php
#!/opt/cpguard/cpg-php-fpm/bin/php
<?php

## DO NOT CUSTOMISE THIS FILE
## This file may be updated during software update
## Please make a copy of the file for customising it


ini_set("display_errors", false);

$domain_list = shell_exec('/usr/bin/cyberpanel listWebsitesJson');

if (!empty($domain_list)) {
    $domain_list = json_decode(trim(stripslashes($domain_list), "\"\n"));
}

if (file_exists('/usr/local/lsws/conf/httpd.conf')) {
    $docroots = parse_litespeed_config('/usr/local/lsws/conf/httpd.conf');
} else if (file_exists('/usr/local/lsws/conf/httpd_config.conf')) {
    $docroots = parse_openlitespeed_conf('/usr/local/lsws/conf/httpd_config.conf');
}


$result = [];

if (is_array($domain_list)) {

    foreach ($domain_list as $key => $values) {
        $temp = '/home/' . $values->domain . '/public_html';
        $result[] = [
            'domain' => $values->domain,
            'user' => $values->admin,
            'docroot' => $docroots[$values->domain] ?? (file_exists($temp) ? $temp : '')
        ];

    }
    echo json_encode($result, JSON_PRETTY_PRINT);
} else {
    echo '[]';
}


function parse_openlitespeed_conf($conf_file)
{
    $result = [];

    $conf_contents = file_get_contents($conf_file);
    if (preg_match_all('/virtualHost\s([^\s]+)\s.+\n\s*vhRoot\s+([^\n]+)$/mi', $conf_contents, $matches, PREG_SET_ORDER)) {
        foreach ($matches as $domain) {
            $result[$domain[1]] = str_replace('$VH_NAME', $domain[1], $domain[2]) . '/public_html';
        }
    }
    return $result;

}


function parse_litespeed_config($conf_files, $server_root = NULL)
{

    $result = [];

    $conf_files = glob($conf_files); //to be able to accept paths like /usr/local/lsws/conf/vhosts/*/vhost.conf
    foreach ($conf_files as $conf_file) {

        //Read and clean the configuration file
        $conf = file_get_contents($conf_file);

        //Gather all docroots in this conf file
        if (!empty($conf) && preg_match_all('/^\s*\<VirtualHost(.*?)\<\/VirtualHost\>/ms', $conf, $vhost_matches)) {
            foreach ($vhost_matches[1] as $vhost) {
                preg_match('/^\s*ServerName\s+(.+)$/m', $vhost, $domain);
                preg_match('/^\s*DocumentRoot\s+(.+)$/m', $vhost, $docroot);
                if (!empty($domain[1]) && !empty($docroot[1]) && file_exists($docroot[1])) {
                    $result[$domain[1]] = $docroot[1];
                }
            }
        }

        //Recursively loop included files
        foreach (get_litespeed_includes($conf, $conf_file, $server_root) as $included_conf) {
            $result = array_merge($result, parse_litespeed_config($included_conf, $server_root));
        }
    }
    return $result;
}

function get_litespeed_includes(&$conf, &$conf_file, &$server_root)
{
    $result = [];
    //Now parse all included conf files
    if (preg_match('/^\s*ServerRoot\s+\"(.+)\"$/m', $conf, $matches)) {
        //If ServerRoot is set then relative paths are based on this value
        $root = $server_root = $matches[1];
    } else {
        $root = dirname($conf_file);
    }

    $ingored_confs = ['mods-enabled/', 'conf-enabled/'];
    preg_match_all('/^\s*(IncludeOptional|Include)\s+(.+)$/m', $conf, $include_paths);
    foreach ($include_paths[2] ?? [] as $path) {
        foreach ($ingored_confs as $needle) {
            if (strpos($path, $needle) === 0) {
                continue;
            }
        }
        if ($path[0] !== '/') {
            $path = $server_root === NULL ? "$root/$path" : "$server_root/$path";
        }
        $result[] = $path;
    }
    return $result;
}

Anon7 - 2022
SCDN GOK