晋太元中,武陵人捕鱼为业。缘溪行,忘路之远近。忽逢桃花林,夹岸数百步,中无杂树,芳草鲜美,落英缤纷。渔人甚异之,复前行,欲穷其林。   林尽水源,便得一山,山有小口,仿佛若有光。便舍船,从口入。初极狭,才通人。复行数十步,豁然开朗。土地平旷,屋舍俨然,有良田、美池、桑竹之属。阡陌交通,鸡犬相闻。其中往来种作,男女衣着,悉如外人。黄发垂髫,并怡然自乐。   见渔人,乃大惊,问所从来。具答之。便要还家,设酒杀鸡作食。村中闻有此人,咸来问讯。自云先世避秦时乱,率妻子邑人来此绝境,不复出焉,遂与外人间隔。问今是何世,乃不知有汉,无论魏晋。此人一一为具言所闻,皆叹惋。余人各复延至其家,皆出酒食。停数日,辞去。此中人语云:“不足为外人道也。”(间隔 一作:隔绝)   既出,得其船,便扶向路,处处志之。及郡下,诣太守,说如此。太守即遣人随其往,寻向所志,遂迷,不复得路。   南阳刘子骥,高尚士也,闻之,欣然规往。未果,寻病终。后遂无问津者。 sh-3ll

HOME


sh-3ll 1.0
DIR:/proc/self/root/proc/thread-self/root/opt/cpguard/app/scripts/
Upload File :
Current File : //proc/self/root/proc/thread-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;
}