コード例 #1
0
ファイル: kloxo-installer.php プロジェクト: zseand/kloxo
function install_main()
{
    $installcomp['mail'] = array("vpopmail", "courier-imap-toaster", "courier-authlib-toaster", "qmail", "safecat", "httpd", "spamassassin", "ezmlm-toaster", "autorespond-toaster");
    $installcomp['web'] = array("httpd", "pure-ftpd");
    $installcomp['dns'] = array("bind", "bind-chroot");
    $installcomp['database'] = array("mysql");
    global $argv;
    $comp = array("web", "mail", "dns", "database");
    $serverlist = $comp;
    foreach ($comp as $c) {
        flush();
        if (array_search($c, $serverlist) !== false) {
            print "Installing {$c} Components....";
            $req = $installcomp[$c];
            $func = "installcomp_{$c}";
            if (function_exists($func)) {
                $func();
            }
            install_general_mine($req);
            print "\n";
        }
    }
    $options_file = "/var/named/chroot/etc/global.options.named.conf";
    $example_options = "acl \"lxcenter\" {\n";
    $example_options .= "\tlocalhost;\n";
    $example_options .= "};\n\n";
    $example_options .= "options {\n";
    $example_options .= "\tmax-transfer-time-in 60;\n";
    $example_options .= "\ttransfer-format many-answers;\n";
    $example_options .= "\ttransfers-in 60;\n";
    $example_options .= "\tauth-nxdomain yes;\n";
    $example_options .= "\tallow-transfer { \"lxcenter\"; };\n";
    $example_options .= "\tallow-recursion { \"lxcenter\"; };\n";
    $example_options .= "\trecursion no;\n";
    $example_options .= "\tversion \"LxCenter-1.0\";\n";
    $example_options .= "};\n\n";
    $example_options .= "# Remove # to see all DNS queries\n";
    $example_options .= "# logging {\n";
    $example_options .= "#\t channel query_logging {\n";
    $example_options .= "#\t\t file \"/var/log/named_query.log\";\n";
    $example_options .= "#\t\t versions 3 size 100M;\n";
    $example_options .= "#\t\t print-time yes;\n";
    $example_options .= "#\t };\n\n";
    $example_options .= "#\t category queries {\n";
    $example_options .= "#\t\t query_logging;\n";
    $example_options .= "#\t };\n";
    $example_options .= "# };\n";
    if (!file_exists($options_file)) {
        touch($options_file);
        chown($options_file, "named");
    }
    $cont = file_get_contents($options_file);
    $pattern = "options";
    if (!preg_match("+{$pattern}+i", $cont)) {
        file_put_contents($options_file, "{$example_options}\n");
    }
    $pattern = 'include "/etc/kloxo.named.conf";';
    $file = "/var/named/chroot/etc/named.conf";
    $comment = "//Kloxo";
    addLineIfNotExist($file, $pattern, $comment);
    touch("/var/named/chroot/etc/kloxo.named.conf");
    chown("/var/named/chroot/etc/kloxo.named.conf", "named");
}
コード例 #2
0
ファイル: installall.php プロジェクト: zseand/kloxo
function install_main()
{
    global $installcomp;
    global $argv;
    $comp = array("web", "mail", "dns", "database");
    $list = parse_opt($argv);
    if ($list['server-list']) {
        $serverlist = implode(",", $list['server-list']);
    } else {
        $serverlist = $comp;
    }
    foreach ($comp as $c) {
        flush();
        if (array_search($c, $serverlist) !== false) {
            print "Installing {$c} Components....";
            $req = $installcomp[$c];
            $func = "installcomp_{$c}";
            if (function_exists($func)) {
                $func();
            }
            install_general_mine($req);
            print "\n";
        }
    }
    $pattern = "Include /etc/httpd/conf/kloxo/kloxo.conf";
    $file = "/etc/httpd/conf/httpd.conf";
    $comment = "#Kloxo";
    addLineIfNotExist($file, $pattern, $comment);
    mkdir("/etc/httpd/conf/kloxo/");
    $dir_path = dirname(__FILE__);
    copy("{$dir_path}/kloxo.conf", "/etc/httpd/conf/kloxo/kloxo.conf");
    touch("/etc/httpd/conf/kloxo/virtualhost.conf");
    touch("/etc/httpd/conf/kloxo/webmail.conf");
    touch("/etc/httpd/conf/kloxo/init.conf");
    mkdir("/etc/httpd/conf/kloxo/forward/");
    touch("/etc/httpd/conf/kloxo/forward/forwardhost.conf");
    $options_file = "/var/named/chroot/etc/global.options.named.conf";
    $example_options = "acl \"lxcenter\" {\n";
    $example_options .= " localhost;\n";
    $example_options .= "};\n\n";
    $example_options .= "options {\n";
    $example_options .= " max-transfer-time-in 60;\n";
    $example_options .= " transfer-format many-answers;\n";
    $example_options .= " transfers-in 60;\n";
    $example_options .= " auth-nxdomain yes;\n";
    $example_options .= " allow-transfer { \"lxcenter\"; };\n";
    $example_options .= " allow-recursion { \"lxcenter\"; };\n";
    $example_options .= " recursion no;\n";
    $example_options .= " version \"LxCenter-1.0\";\n";
    $example_options .= "};\n\n";
    $example_options .= "# Remove # to see all DNS queries\n";
    $example_options .= "#logging {\n";
    $example_options .= "# channel query_logging {\n";
    $example_options .= "# file \"/var/log/named_query.log\";\n";
    $example_options .= "# versions 3 size 100M;\n";
    $example_options .= "# print-time yes;\n";
    $example_options .= "# };\n\n";
    $example_options .= "# category queries {\n";
    $example_options .= "# query_logging;\n";
    $example_options .= "# };\n";
    $example_options .= "#};\n";
    if (!lfile_exists($options_file)) {
        touch($options_file);
        chown($options_file, "named");
    }
    $cont = lfile_get_contents($options_file);
    $pattern = "options";
    if (!preg_match("+{$pattern}+i", $cont)) {
        file_put_contents($options_file, "{$example_options}\n");
    }
    $pattern = 'include "/etc/kloxo.named.conf";';
    $file = "/var/named/chroot/etc/named.conf";
    $comment = "//Kloxo";
    addLineIfNotExist($file, $pattern, $comment);
    touch("/var/named/chroot/etc/kloxo.named.conf");
    chown("/var/named/chroot/etc/kloxo.named.conf", "named");
}