Пример #1
0
 protected static function checkAllDataMail()
 {
     $sql_query = "\n\t\t\tSELECT\n\t\t\t\tdomain_id, status\n\t\t\tFROM\n\t\t\t\tmail_users\n\t\t\tWHERE\n\t\t\t\tstatus\n\t\t\tIN\n\t\t\t\t('add', 'change', 'delete', 'disable', 'enable')\n\t\t\tORDER BY\n\t\t\t\tdomain_id;\n\t\t";
     foreach (DB::query($sql_query) as $row) {
         $retVal = DaemonMail::Start($row['domain_id']);
         if ($retVal !== true) {
             return $retVal;
         }
     }
     return true;
 }
Пример #2
0
 /**
  * Writes Apache configuration for default domain and enables configuration.
  *
  * @param array $domainData
  * @return boolean
  */
 protected static function apacheWriteDomainConfig($domainData)
 {
     if ($domainData['domain_mailacc_limit'] == '-1') {
         DaemonMail::DaemonMailDeleteDomain($domainData['domain_name']);
     } else {
         DaemonMail::DaemonMailAddDomain($domainData['domain_name']);
     }
     $append = false;
     $sysGroup = DaemonConfig::$cfg->APACHE_SUEXEC_USER_PREF . $domainData['domain_gid'];
     $sysUser = DaemonConfig::$cfg->APACHE_SUEXEC_USER_PREF . $domainData['domain_uid'];
     $serverName = $domainData['domain_name'];
     $tpl_param = array('DOMAIN_IP' => $domainData['ip_number'], 'DOMAIN_GID' => $sysUser, 'DOMAIN_UID' => $sysGroup, 'SERVER_ADMIN' => $domainData['email'], 'DOC_ROOT' => $domainData['domain_name'], 'SERVER_NAME' => $serverName, 'SERVER_ALIAS' => 'www.' . $domainData['domain_name'] . ' ' . $sysGroup . '.' . DaemonConfig::$cfg->BASE_SERVER_VHOST, 'MASTER_DOMAIN' => $domainData['domain_name'], 'AWSTATS' => DaemonConfig::$cfg->AWSTATS_ACTIVE == 'yes' ? true : false, 'DOMAIN_CGI' => $domainData['domain_cgi'] == 'yes' ? true : false, 'DOMAIN_PHP' => $domainData['domain_php'] == 'yes' ? true : false, 'BASE_SERVER_VHOST' => DaemonConfig::$cfg->BASE_SERVER_VHOST, 'BASE_SERVER_VHOST_PREFIX' => DaemonConfig::$cfg->BASE_SERVER_VHOST_PREFIX, 'WWW_DIR' => DaemonConfig::$distro->APACHE_WWW_DIR, 'CUSTOM_SITES_CONFIG_DIR' => DaemonConfig::$distro->APACHE_CUSTOM_SITES_CONFIG_DIR, 'HTACCESS_USERS_FILE_NAME' => DaemonConfig::$cfg->HTACCESS_USERS_FILE_NAME, 'HTACCESS_GROUPS_FILE_NAME' => DaemonConfig::$cfg->HTACCESS_GROUPS_FILE_NAME, 'AWSTATS_GROUP_AUTH' => DaemonConfig::$cfg->AWSTATS_GROUP_AUTH, 'PHP_STARTER_DIR' => DaemonConfig::$distro->PHP_STARTER_DIR, 'APACHE_LOG_DIR' => DaemonConfig::$distro->APACHE_LOG_DIR, 'APACHE_TRAFFIC_LOG_DIR' => DaemonConfig::$distro->APACHE_TRAFFIC_LOG_DIR, 'SELF' => $domainData['domain_name']);
     if ($tpl_param['SERVER_ADMIN'] == null || $tpl_param['SERVER_ADMIN'] == '') {
         $msg = 'Mail Address for ServerAdmin must be set!';
         System_Daemon::warning($msg);
         return $msg . '<br />' . false;
     }
     if ($domainData['ssl_status'] == 1) {
         $tpl_param['DOMAIN_PORT'] = 80;
         $tpl_param['REDIRECT'] = true;
     } else {
         $tpl_param['DOMAIN_PORT'] = 80;
     }
     if (isset($domainData['subdomain_url_forward'])) {
         $tpl_param['FORWARD_URL'] = $domainData['subdomain_url_forward'];
     }
     if (isset($domainData['subdomain_name'])) {
         $append = true;
         $serverName = $domainData['subdomain_name'] . '.' . $domainData['domain_name'];
         $tpl_param['DOC_ROOT'] = $domainData['domain_name'] . $domainData['subdomain_mount'];
         $tpl_param['SERVER_NAME'] = $serverName;
         $tpl_param['SELF'] = $domainData['subdomain_name'] . '.' . $domainData['domain_name'];
         $tpl_param['SERVER_ALIAS'] = 'www.' . $domainData['subdomain_name'] . '.' . $domainData['domain_name'];
         $tpl_param['TRAFFIC_PREFIX'] = $domainData['domain_id'] . '.' . $domainData['subdomain_id'] . '.';
     } else {
         $tpl_param['TRAFFIC_PREFIX'] = $domainData['domain_id'] . '.0.';
     }
     if (isset($domainData['master_domain'])) {
         $tpl_param['MASTER_DOMAIN'] = $domainData['master_domain'];
         $tpl_param['DOC_ROOT'] = $domainData['master_domain'];
         if (isset($domainData['subdomain_mount'])) {
             $tpl_param['DOC_ROOT'] .= $domainData['subdomain_mount'];
         }
     }
     $tpl = DaemonCommon::getTemplate($tpl_param);
     // write Apache config
     $config = $tpl->fetch('apache/parts/vhost.tpl');
     $tpl = NULL;
     unset($tpl);
     $confFile = DaemonConfig::$distro->APACHE_SITES_DIR . '/' . $domainData['domain_name'] . '.conf';
     $retVal = DaemonCommon::systemWriteContentToFile($confFile, $config, DaemonConfig::$cfg->ROOT_USER, DaemonConfig::$cfg->ROOT_GROUP, 0644, $append);
     if ($retVal !== true) {
         $msg = 'Failed to write' . $confFile;
         System_Daemon::warning($msg);
         return $msg . '<br />' . $retVal;
     }
     if (isset($domainData['ip_number_v6']) && $domainData['ip_number_v6'] != '') {
         $append = true;
         $tpl_param['DOMAIN_IP'] = '[' . $domainData['ip_number_v6'] . ']';
         $tpl = DaemonCommon::getTemplate($tpl_param);
         // write Apache config
         $config = $tpl->fetch('apache/parts/vhost.tpl');
         $tpl = NULL;
         unset($tpl);
         $confFile = DaemonConfig::$distro->APACHE_SITES_DIR . '/' . $domainData['domain_name'] . '.conf';
         $retVal = DaemonCommon::systemWriteContentToFile($confFile, $config, DaemonConfig::$cfg->ROOT_USER, DaemonConfig::$cfg->ROOT_GROUP, 0644, $append);
         if ($retVal !== true) {
             $msg = 'Failed to write' . $confFile;
             System_Daemon::warning($msg);
             return $msg . '<br />' . $retVal;
         }
         $tpl_param['DOMAIN_IP'] = $domainData['ip_number'];
     }
     if ($domainData['ssl_status'] > 0) {
         $append = true;
         $retVal = self::writeSSLKeys($domainData);
         if ($retVal !== true) {
             $msg = 'Writing SSL keys failed';
             System_Daemon::debug($msg);
             return $msg . '<br />' . $retVal;
         }
         $tpl_param['DOMAIN_PORT'] = 443;
         $tpl_param['SSL_CERT_DIR'] = DaemonConfig::$distro->SSL_CERT_DIR;
         $tpl_param['SSL_KEY_DIR'] = DaemonConfig::$distro->SSL_KEY_DIR;
         $tpl_param['REDIRECT'] = false;
         if (isset($domainData['ssl_cacert']) && $domainData['ssl_cacert'] != '') {
             $tpl_param['SSL_CACERT'] = true;
         }
         $tpl = DaemonCommon::getTemplate($tpl_param);
         // write Apache config
         $config = $tpl->fetch('apache/parts/vhost.tpl');
         $tpl = NULL;
         unset($tpl);
         $confFile = DaemonConfig::$distro->APACHE_SITES_DIR . '/' . $domainData['domain_name'] . '.conf';
         $retVal = DaemonCommon::systemWriteContentToFile($confFile, $config, DaemonConfig::$cfg->ROOT_USER, DaemonConfig::$cfg->ROOT_GROUP, 0644, $append);
         if ($retVal !== true) {
             $msg = 'Failed to write' . $confFile;
             System_Daemon::warning($msg);
             return $msg . '<br />' . $retVal;
         }
         if (isset($domainData['ip_number_v6']) && $domainData['ip_number_v6'] != '') {
             $append = true;
             $tpl_param['DOMAIN_IP'] = '[' . $domainData['ip_number_v6'] . ']';
             $tpl = DaemonCommon::getTemplate($tpl_param);
             // write Apache config
             $config = $tpl->fetch('apache/parts/vhost.tpl');
             $tpl = NULL;
             unset($tpl);
             $confFile = DaemonConfig::$distro->APACHE_SITES_DIR . '/' . $domainData['domain_name'] . '.conf';
             $retVal = DaemonCommon::systemWriteContentToFile($confFile, $config, DaemonConfig::$cfg->ROOT_USER, DaemonConfig::$cfg->ROOT_GROUP, 0644, $append);
             if ($retVal !== true) {
                 $msg = 'Failed to write' . $confFile;
                 System_Daemon::warning($msg);
                 return $msg . '<br />' . $retVal;
             }
         }
     }
     $tpl = DaemonCommon::getTemplate($tpl_param);
     // write Apache config
     $config = $tpl->fetch('apache/parts/custom.conf.tpl');
     $tpl = NULL;
     unset($tpl);
     $confFile = DaemonConfig::$distro->APACHE_CUSTOM_SITES_CONFIG_DIR . '/' . $serverName . '.custom';
     if (!file_exists($confFile)) {
         $retVal = DaemonCommon::systemWriteContentToFile($confFile, $config, DaemonConfig::$cfg->ROOT_USER, DaemonConfig::$cfg->ROOT_GROUP, 0644, $append);
         if ($retVal !== true) {
             $msg = 'Failed to write' . $confFile;
             System_Daemon::warning($msg);
             return $msg . '<br />' . $retVal;
         }
     }
     return true;
 }