Exemplo n.º 1
0
function main(&$errors)
{
    global $config, $_SERWEB;
    $dh =& Domains::singleton();
    if (false === ($domains = $dh->get_all_dids())) {
        return false;
    }
    foreach ($domains as $did) {
        if (false === update_domain_dir($did)) {
            return false;
        }
    }
    /* update vhosts dir */
    if ($config->apache_vhosts_dir) {
        $target = realpath($_SERWEB["serwebdir"]);
        $local_links = array();
        /* get list of local symlinks */
        $d = dir($config->apache_vhosts_dir);
        while (false !== ($entry = $d->read())) {
            if (is_link($config->apache_vhosts_dir . $entry) and realpath(readlink($config->apache_vhosts_dir . $entry)) == $target) {
                $local_links[] = $entry;
            }
            /* this is need for testing on windows
              			if ($entry != "." and $entry != ".."){
            				$local_links[] = substr($entry, 0, -4);
            			}
             */
        }
        $d->close();
        /* get list of domain names */
        $dom_names = array();
        if (false === ($domains = $dh->get_domains())) {
            return false;
        }
        foreach ($domains as $k => $v) {
            $dom_names[] = $k;
        }
        /* synchronize links in vhosts dir with DB */
        $d_lnk = array_diff($local_links, $dom_names);
        $c_lnk = array_diff($dom_names, $local_links);
        foreach ($d_lnk as $v) {
            remove_vhost_symlink($v);
        }
        foreach ($c_lnk as $v) {
            create_vhost_symlink($v);
        }
    }
    return true;
}
/**
 *	Method remove symlinks for domain name (alias)
 *
 *	Method remove symlinks from directory with domain specific config and 
 *	from directory with virtual hosts (for purpose of apache)
 *
 *	@param string $domain_name	name of domain (alias)
 *	@param array  $errors		array with error messages
 *	@return bool				return TRUE on success, FALSE on failure
 */
function domain_remove_symlinks($domain_name, &$errors)
{
    global $config;
    if (false === remove_vhost_symlink($domain_name)) {
        return false;
    }
    return true;
}