/** * Handles DaemonDomain requests to create, modify or delete domains. * Includes the creation of virtual users for EasySCP. * * @param string $Input * @param bool $reload * @return mixed */ public static function Start($Input, $reload = true) { System_Daemon::debug('Starting "DaemonDomain::Start" subprocess.'); $data = explode(" ", $Input); switch ($data[0]) { case 'domain': System_Daemon::debug('Starting domain.'); $retVal = false; if ($domainData = self::queryDomainDataByDomainID($data[1])) { $retVal = self::handleDomain($domainData); if ($retVal !== true) { $msg = 'Handling of domain ' . $domainData['domain_name'] . ' failed!'; System_Daemon::debug($msg); return $msg . '<br />' . $retVal; } if ($subDomainData = self::querySubDomainDataByDomainID($domainData['domain_id'])) { foreach ($subDomainData->fetchAll() as $row) { $retVal = self::handleSubDomain($row); if ($retVal !== true) { $msg = 'Handling of subdomain ' . $domainData['subdomain_name'] . '.' . $domainData['domain_name'] . ' failed!'; System_Daemon::debug($msg); return $msg . '<br />' . $retVal; } } } } else { System_Daemon::debug('Failed to get "queryDomainDataByDomainID": ' . $data[1]); } if ($retVal === true) { System_Daemon::debug("Set Domain status"); if ($domainData['status'] == 'disable') { $retVal = self::dbSetDomainStatus('disabled', $domainData['domain_id']); } else { $retVal = self::dbSetDomainStatus('ok', $domainData['domain_id']); } if ($retVal !== true) { $msg = 'Setting Domain status failed'; System_Daemon::debug($msg); return $msg . '<br />' . $retVal; } } break; case 'alias': System_Daemon::debug("Starting alias"); if ($aliasData = self::queryAliasDataByAliasID($data[1])) { $retVal = self::handleAlias($aliasData); if ($retVal !== true) { $msg = 'Handling of alias ' . $aliasData['alias_name'] . ' failed!'; System_Daemon::debug($msg); return $msg . '<br />' . $retVal; } if ($subDomainAliasData = self::queryAliasSubDomainDataByAliasID($aliasData['alias_id'])) { while ($row = $subDomainAliasData->fetch()) { $retVal = self::handleSubDomainAlias($row); if ($retVal !== true) { $msg = 'Handling of subdomain ' . $row['subdomain_alias_name'] . '.' . $row['alias_name'] . ' failed!'; System_Daemon::debug($msg); return $msg . '<br />' . $retVal; } } } } break; case 'htaccess': if ($domainData = self::queryHTAccessData($data[1])) { $retVal = self::handleHTAccess($domainData); if ($retVal !== true) { $msg = 'Handling of htaccess for ' . $domainData['domain_name'] . ' failed!'; System_Daemon::debug($msg); return $msg . '<br />' . $retVal; } } break; case 'reload': break; case 'master': $retVal = self::writeMasterConfig(); if ($retVal !== true) { $msg = 'Handling of master configuration failed!'; System_Daemon::debug($msg); return $msg . '<br />' . $retVal; } break; default: System_Daemon::warning("Don't know what to do with " . $data[0]); } if ($reload === true) { $retVal = self::apacheReloadConfig(); if ($retVal !== true) { $msg = 'Reload apache config failed'; System_Daemon::debug($msg); return $msg . '<br />' . (DaemonConfig::$cfg->{'DEBUG'} == '1' ? DaemonCommon::listArrayforGUI($retVal) : ''); } } System_Daemon::debug('Finished "DaemonDomain::Start" subprocess.'); return true; }
protected static function deleteAlias($aliasData) { if ($subDomainAliasData = self::queryAliasSubDomainDataByAliasID($aliasData['alias_id'])) { while ($row = $subDomainAliasData->fetch()) { $retVal = self::deleteAliasSubDomain($row); if ($retVal !== true) { $fqdn = $row['subdomain_alias_name'] . '.' . $row['alias_name']; $msg = 'Deleting of alias subdomain ' . $fqdn . 'failed'; System_Daemon::debug($msg); return $msg . '<br />' . (DaemonConfig::$cfg->DEBUG == '1' ? DaemonCommon::listArrayforGUI($retVal) : ''); } } } $fqdn = $aliasData['domain_name']; $confFile = DaemonConfig::$distro->APACHE_SITES_DIR . '/' . $fqdn . '.conf'; $retVal = self::deleteFile($confFile); if ($retVal !== true) { return $retVal; } $confFile = DaemonConfig::$distro->APACHE_CUSTOM_SITES_CONFIG_DIR . '/' . $fqdn . '.custom'; $retVal = self::deleteFile($confFile); if ($retVal !== true) { return $retVal; } self::deleteSSLKeys($aliasData['domain_name']); $sql_param = array(':alias_id' => $aliasData['alias_id']); $sql_query = ' DELETE FROM domain_aliasses WHERE alias_id=:alias_id; '; DB::prepare($sql_query); if ($row = DB::execute($sql_param)->closeCursor()) { } return true; }