예제 #1
0
 function updateMainConfFile()
 {
     global $gbl, $sgbl, $login, $ghtml;
     $init_file = "/home/apache/conf/defaults/init.conf";
     $vdomlist = $this->main->__var_vdomain_list;
     $iplist = os_get_allips();
     $fdata = null;
     foreach ($iplist as $key => $ip) {
         if ($ip) {
             $fdata .= "NameVirtualHost {$ip}:80\n";
             $fdata .= "NameVirtualHost {$ip}:443\n\n";
         }
     }
     lfile_put_contents($init_file, $fdata);
     $virtual_file = "/home/apache/conf/defaults/stats.conf";
     $fdata = null;
     $fdata .= "Alias /awstatscss \"{$sgbl->__path_home_root}/httpd/awstats/wwwroot/css/\"\n";
     $fdata .= "Alias /awstatsicons \"{$sgbl->__path_home_root}/httpd/awstats/wwwroot/icon/\"\n\n";
     lfile_put_contents($virtual_file, $fdata);
     // MR -- override httpd.conf
     lxfile_cp("/usr/local/lxlabs/kloxo/file/centos-5/httpd.conf", "/etc/httpd/conf/httpd.conf");
     if (file_exists("/etc/httpd/conf/kloxo")) {
         // MR -- delete old structure
         exec("rm -rf /etc/httpd/conf/kloxo");
         exec("rm -rf /httpd/httpd/conf");
         $vdomlist = merge_array_object_not_deleted($vdomlist, $this->main);
         foreach ((array) $vdomlist as $dom) {
             exec("rm -rf {$sgbl->__path_httpd_root}/{$dom['nname']}/conf");
         }
     }
 }
예제 #2
0
 function createMimeType()
 {
     $result = $this->main->__var_mime_list;
     $result = merge_array_object_not_deleted($result, $this->main);
     $string = null;
     foreach ($result as $r) {
         $string .= "Addtype {$r['type']} {$r['extension']}\n";
     }
     lfile_put_contents("/etc/httpd/conf/kloxo/mimetype.conf", $string);
 }
예제 #3
0
 function createDiruserfile()
 {
     global $gbl, $sgbl, $login, $ghtml;
     $result = $this->main->__var_davuser;
     $result = merge_array_object_not_deleted($result, $this->main);
     foreach ($result as $r) {
         $nr[$r['username']] = $r['realpass'];
     }
     createHtpasswordFile($this, "__webdav", $nr);
 }
 function updateWht()
 {
     $res = $this->main->__var_whitelist;
     $res = merge_array_object_not_deleted($res, $this->main);
     $list = get_namelist_from_arraylist($res, 'ipaddress');
     $rmt = new Remote();
     $rmt->data = $list;
     lfile_put_serialize("__path_home_root/lxguard/whitelist.info", $rmt);
     lxshell_return("__path_php_path", "../bin/common/lxguard.php");
 }
예제 #5
0
 function createExtraVariables()
 {
     $path = $this->getParentO()->getFullDocRoot();
     $this->__var_htp = "{$path}/.htaccess";
     $sq = new Sqlite(null, $this->get__table());
     $res = $sq->getRowsWhere("parent_clname = '{$this->parent_clname}'");
     $result = merge_array_object_not_deleted($res, $this);
     foreach ($result as $r) {
         $out[$r['mimehandler']] = $r['extension'];
     }
     $this->__var_mimehandler = $out;
 }
예제 #6
0
 function dbactionAdd()
 {
     global $gbl, $sgbl, $login;
     if (if_demo()) {
         return;
     }
     $_filepath = "__path_home_root/lxguard/hostdeny.info";
     $result = $this->main->__var_hostlist;
     $result = merge_array_object_not_deleted($result, $this->main);
     $list = get_namelist_from_arraylist($result, 'hostname', 'hostname');
     dprintr($list);
     lfile_put_serialize($_filepath, $list);
     lxshell_return("__path_php_path", "../bin/common/lxguard.php");
 }
예제 #7
0
 function doReverseDns()
 {
     addLineIfNotExistInside("__path_named_chroot/etc/named.conf", "include \"/etc/lxreverse.conf\";", "//added by hypervm");
     list($base, $end) = reversedns::getBaseEnd($this->main->nname, $this->main->__var_rdnsrange);
     $ddate = date("Ymd");
     $v = rand(0, 99);
     if ($v < 10) {
         $v = "0{$v}";
     }
     $ddate = "{$ddate}{$v}";
     $string = null;
     $string .= "\$TTL 86400\n";
     $string .= "@ IN SOA {$this->main->__var_revdns1}. root.{$this->main->__var_revdns1}. (\n";
     $string .= "{$ddate} ; serial\n";
     $string .= "28800 ; refresh\n";
     $string .= "14400 ; retry\n";
     $string .= "1814400 ; expire\n";
     $string .= "86400 ; default_tt\n";
     $string .= ")\n";
     $string .= "   IN NS {$this->main->__var_revdns1}.\n";
     if ($this->main->__var_revdns2) {
         $string .= "   IN NS {$this->main->__var_revdns2}.\n";
     }
     $result = $this->main->__var_reverse_list;
     $result = $result[$base];
     $this->main->end = $end;
     $result = merge_array_object_not_deleted($result, $this->main);
     foreach ($result as $k => $v) {
         $v['reversename'] = trim($v['reversename']);
         if (!cse($v['reversename'], ".")) {
             $v['reversename'] .= ".";
         }
         $string .= "{$v['end']}\tIN PTR {$v['reversename']}\n";
     }
     lfile_put_contents("__path_named_realpath/{$base}.in-addr.arpa", $string);
     $this->createMainFile();
 }
예제 #8
0
 public function setDhCP()
 {
     if (!$this->main->isWindows()) {
         return;
     }
     $this->main->iplist = get_namelist_from_objectlist($this->main->vmipaddress_a);
     $res = merge_array_object_not_deleted($this->main->__var_win_iplist, $this->main);
     dhcp__dhcpd::createDhcpConfFile($res);
 }
예제 #9
0
 function syncCreateConf()
 {
     global $gbl, $sgbl, $login, $ghtml;
     global $global_shell_error;
     if_demo_throw_exception('cron');
     $conf_file = "__path_cron_root/{$this->main->username}";
     $list = array('minute', 'hour', 'weekday', 'ddate', 'month');
     $tfile = lx_tmp_file($conf_file);
     $cmd = null;
     if ($this->main->__var_mailto) {
         $cmd .= "MAILTO={$this->main->__var_mailto}\n";
     }
     $result = $this->main->__var_cron_list;
     foreach ($result as &$__r) {
         foreach ($list as $l) {
             $__r[$l] = unserialize(base64_decode($__r["ser_{$l}"]));
         }
     }
     $result = merge_array_object_not_deleted($result, $this->main);
     //dprintr($result);
     foreach ((array) $result as $v) {
         if ($v['ttype'] === 'simple') {
             $v['weekday'] = array('--all--');
             $v['month'] = array('--all--');
             $v['ddate'] = array('--all--');
             if ($v['simple_cron'] === 'every-day') {
                 $v['hour'] = $v['cron_day_hour'];
                 $v['minute'] = 0;
             }
             if ($v['simple_cron'] === 'every-hour') {
                 $v['hour'] = array('--all--');
                 $v['minute'] = 0;
             }
             if ($v['simple_cron'] === 'every-minute') {
                 $v['hour'] = array('--all--');
                 $v['minute'] = array('--all--');
             }
         } else {
             foreach ($v["weekday"] as &$___tq) {
                 if (is_numeric($___tq)) {
                     $___tq -= 1;
                 }
             }
         }
         foreach ($list as $l) {
             $v[$l] = $this->getCronString($v[$l]);
         }
         if (!$v['minute']) {
             $v['minute'] = 0;
         }
         $cmd .= implode("\t", array($v['minute'], $v['hour'], $v['ddate'], $v['month'], $v['weekday'], $v['command']));
         $cmd .= "\n";
     }
     lfile_put_contents($tfile, $cmd);
     if (!posix_getpwnam($this->main->username)) {
         lxfile_rm("/var/spool/cron/{$this->main->username}");
         return;
     }
     $ret = lxshell_return("crontab", "-u", $this->main->username, $tfile);
     if ($ret) {
         // Why exactly was a throw removed? backup/restore?
         //throw new lxException("adding_cron_failed", "", $global_shell_error);
         $gbl->setWarning('adding_cron_failed', '', $global_shell_error);
         $data = lfile_get_contents($tfile);
         log_log("cron_error", $data);
     }
     lunlink($tfile);
 }
예제 #10
0
 function doReverseDns()
 {
     global $sgbl;
     $this->main->nname = strtoupper($this->main->nname);
     addLineIfNotExistInside("__path_named_chroot/etc/named.conf", "include \"/etc/lxreverse.conf\";", "//added by hypervm");
     list($base, $end) = reversedns::getBaseEnd($this->main->nname, $this->main->__var_rdnsrange);
     if (reversedns::isIPV6($this->main->nname)) {
         $isv6 = true;
     } else {
         $isv6 = false;
     }
     $ddate = date("Ymd");
     // We read the last serial from the zone file
     // default to 0 on error
     if ($isv6) {
         $version = $this->getNewSerial("{$sgbl->__path_named_realpath}/" . $base . "ip6.arpa", $ddate);
     } else {
         $version = $this->getNewSerial("{$sgbl->__path_named_realpath}/" . $base . "in-addr.arpa", $ddate);
     }
     if ($version < 10) {
         $version = "0" . $version;
     }
     $ddate = "{$ddate}{$version}";
     $string = null;
     $string .= "\$TTL 3600\n";
     if ($isv6) {
         $string .= "\$ORIGIN " . $base . "IP6.ARPA.\n";
     } else {
         $string .= "\$ORIGIN {$base}.IN-ADDR.ARPA.\n";
     }
     $string .= "@ IN SOA {$this->main->__var_revdns1}. root.{$this->main->__var_revdns1}. (\n";
     $string .= "{$ddate} ; serial\n";
     $string .= "18800 ; refresh\n";
     $string .= "14400 ; retry\n";
     $string .= "1814400 ; expire\n";
     $string .= "3600 ; default_tt\n";
     $string .= ")\n";
     $string .= "   IN NS {$this->main->__var_revdns1}.\n";
     if ($this->main->__var_revdns2) {
         $string .= "   IN NS {$this->main->__var_revdns2}.\n";
     }
     $result = $this->main->__var_reverse_list;
     $result = $result[$base];
     $this->main->end = $end;
     $result = merge_array_object_not_deleted($result, $this->main);
     foreach ($result as $key => $val) {
         $val['reversename'] = trim($val['reversename']);
         if (!cse($val['reversename'], ".")) {
             $val['reversename'] .= ".";
         }
         if ($isv6) {
             $string .= reversedns::createDottedRevedIPV6($val['end']) . "\t IN PTR {$val['reversename']}\n";
         } else {
             $string .= "{$val['end']}\tIN PTR {$val['reversename']}\n";
         }
     }
     if ($isv6) {
         lfile_put_contents("__path_named_realpath/" . $base . "ip6.arpa", $string);
     } else {
         lfile_put_contents("__path_named_realpath/{$base}.in-addr.arpa", $string);
     }
     $this->createMainFile();
 }
예제 #11
0
 function syncCreateConf()
 {
     global $gbl, $sgbl, $login, $ghtml;
     //	$host = `hostname`;
     $dlistv = "__var_domainlist_{$this->main->__var_syncserver}";
     $result = $this->main->{$dlistv};
     $nameduser = "******";
     $dnsfile = "/var/tinydns/root/data";
     //dprintr($result);
     $result = merge_array_object_not_deleted($result, $this->main);
     if (!$this->main->isDeleted()) {
         foreach ((array) $this->main->__var_addonlist as $d) {
             $result = merge_array_object_not_deleted($result, $d);
         }
     }
     $cdata = null;
     foreach ((array) $result as $value) {
         $cdata .= " {$value['nname']}.data ";
     }
     $cdata = trim($cdata);
     if ($cdata) {
         $cmd = "cd /var/tinydns/root/kloxo/ ; cat {$cdata} > ../data";
         log_log("dns_log", $cmd);
         system($cmd);
     } else {
         system("rm /var/tinydns/root/data");
     }
     lxfile_unix_chown($dnsfile, $nameduser);
     lxshell_directory("/var/tinydns/root/", "make");
     lxshell_directory("/var/tinydns/root/", "tinydns-data");
 }
예제 #12
0
 function syncCreateConf()
 {
     global $gbl, $sgbl, $login, $ghtml;
     //	$host = `hostname`;
     $result = $this->main->__var_domainlist;
     $fdata = null;
     $dnsfile = "{$sgbl->__path_mara_conf}";
     $nameduser = $sgbl->__var_programuser_dns;
     $iplist = os_get_allips();
     $iplist[] = "127.0.0.1";
     $iplist = implode(",", $iplist);
     $fdata = "csv2 = {}\n";
     $fdata .= "chroot_dir = \"/etc/maradns\"\n";
     $fdata .= "ipv4_bind_addresses=\"{$iplist}\"\n";
     $fdata .= "recursive_acl=\"0.0.0.0/0\"\n";
     $result = merge_array_object_not_deleted($result, $this->main);
     if (!$this->main->isDeleted()) {
         foreach ((array) $this->main->__var_addonlist as $d) {
             $result = merge_array_object_not_deleted($result, $d);
         }
     }
     foreach ((array) $result as $value) {
         $tmp = "csv2[\"{$value['nname']}.\"] = \"{$value['nname']}\"\n";
         $fdata .= $tmp;
     }
     lfile_put_contents($dnsfile, $fdata);
     lxfile_unix_chown($dnsfile, $nameduser);
 }