public static function SaveRCConfig() { System_Daemon::debug('Starting "DaemonConfigTools::SaveRCConfig" subprocess.'); $xml = simplexml_load_file(DaemonConfig::$cfg->{'CONF_DIR'} . '/EasySCP_Config_RC.xml'); // Backup current Roundcube conf if exists if (file_exists(DaemonConfig::$cfg->{'GUI_ROOT_DIR'} . '/tools/webmail/config/config.inc.php')) { exec(DaemonConfig::$cmd->{'CMD_CP'} . ' -pf ' . DaemonConfig::$cfg->{'GUI_ROOT_DIR'} . '/tools/webmail/config/config.inc.php ' . DaemonConfig::$cfg->{'CONF_DIR'} . '/roundcube/backup/config.inc.php' . '_' . date("Y_m_d_H_i_s"), $result, $error); } $tpl_param = array('CUBE_USER' => $xml->{'CUBE_USER'}, 'CUBE_PASS' => DB::decrypt_data($xml->{'CUBE_PASS'}), 'HOSTNAME' => $xml->{'DATABASE_HOST'}); $tpl = DaemonCommon::getTemplate($tpl_param); $config = $tpl->fetch('roundcube/parts/config.inc.tpl'); $confFile = DaemonConfig::$cfg->{'CONF_DIR'} . '/roundcube/working/config.inc.php'; $tpl = NULL; unset($tpl); if (!DaemonCommon::systemWriteContentToFile($confFile, $config, DaemonConfig::$cfg->{'ROOT_USER'}, DaemonConfig::$cfg->{'ROOT_GROUP'}, 0640)) { System_Daemon::debug('Error: Failed to write ' . $confFile); return; } System_Daemon::debug('Storing the roundcube config files in the working directory'); exec(DaemonConfig::$cmd->{'CMD_CP'} . ' -pf ' . DaemonConfig::$cfg->{'CONF_DIR'} . '/roundcube/working/config.inc.php ' . DaemonConfig::$cfg->{'GUI_ROOT_DIR'} . '/tools/webmail/config', $result, $error); DaemonCommon::systemSetFilePermissions(DaemonConfig::$cfg->{'GUI_ROOT_DIR'} . '/tools/webmail/config/config.inc.php', DaemonConfig::$cfg->{'APACHE_SUEXEC_USER_PREF'} . DaemonConfig::$cfg->{'APACHE_SUEXEC_MIN_UID'}, DaemonConfig::$cfg->{'APACHE_SUEXEC_USER_PREF'} . DaemonConfig::$cfg->{'APACHE_SUEXEC_MIN_GID'}, 0644); System_Daemon::debug('Finished "DaemonConfigTools::SaveRCConfig" subprocess.'); }
function EasySCP_database() { $connectid = ''; try { $connectid = new PDO('mysql:host=' . DaemonConfig::$cfg->{'DATABASE_HOST'} . ';port=3306', DaemonConfig::$cfg->{'DATABASE_USER'}, DB::decrypt_data(DaemonConfig::$cfg->{'DATABASE_PASSWORD'}), array(PDO::ATTR_PERSISTENT => true, PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION)); } catch (PDOException $e) { return 'Can“t connect to database. Please check your data and make sure that database is running!'; } if ($connectid != '') { System_Daemon::debug('Create EasySCP DB if not exists'); $query = "\n\t\t\tCREATE DATABASE IF NOT EXISTS " . DaemonConfig::$cfg->{'DATABASE_NAME'} . "\n \t\t\tDEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;\n \t\t"; $connectid->query($query)->closeCursor(); } System_Daemon::debug('Import EasySCP DB'); if (file_exists(DaemonConfig::$cfg->{'CONF_DIR'} . '/database/database.sql')) { DB::query(file_get_contents(DaemonConfig::$cfg->{'CONF_DIR'} . '/database/database.sql'))->closeCursor(); return 'Ok'; } else { return 'Error: Required file ' . DaemonConfig::$cfg->{'CONF_DIR'} . '/database/database.sql not found'; } }
/** * @return mixed */ public static function SavePDNSConfig() { System_Daemon::debug('Starting "DaemonConfigDNS::SavePDNSConfig" subprocess.'); if (!file_exists(DaemonConfig::$distro->{'PDNS_DB_DIR'} . '/')) { DaemonCommon::systemCreateDirectory(DaemonConfig::$distro->{'PDNS_DB_DIR'} . '/', DaemonConfig::$cfg->{'ROOT_USER'}, DaemonConfig::$cfg->{'ROOT_GROUP'}, 0640); } $xml = simplexml_load_file(DaemonConfig::$cfg->{'CONF_DIR'} . '/EasySCP_Config_DNS.xml'); $tpl_param = array('PDNS_USER' => $xml->{'PDNS_USER'}, 'PDNS_PASS' => DB::decrypt_data($xml->{'PDNS_PASS'}), 'HOSTNAME' => $xml->{'HOSTNAME'}); switch (DaemonConfig::$cfg->{'DistName'} . '_' . DaemonConfig::$cfg->{'DistVersion'}) { case 'CentOS_6': $tpl = DaemonCommon::getTemplate($tpl_param); $config = $tpl->fetch('pdns/parts/pdns.conf'); $confFile = DaemonConfig::$cfg->{'CONF_DIR'} . '/pdns/working/pdns.conf'; $tpl = NULL; unset($tpl); if (!DaemonCommon::systemWriteContentToFile($confFile, $config, DaemonConfig::$cfg->{'ROOT_USER'}, DaemonConfig::$cfg->{'ROOT_GROUP'}, 0640)) { return 'Error: Failed to write ' . $confFile; } break; case 'Debian_8': exec(DaemonConfig::$cmd->{'CMD_CP'} . ' -pf ' . DaemonConfig::$cfg->{'CONF_DIR'} . '/pdns/parts/pdns_8.conf ' . DaemonConfig::$cfg->{'CONF_DIR'} . '/pdns/working/pdns.conf', $result, $error); $tpl = DaemonCommon::getTemplate($tpl_param); $config = $tpl->fetch('pdns/parts/pdns.local.gmysql.conf'); $confFile = DaemonConfig::$cfg->{'CONF_DIR'} . '/pdns/working/pdns.local.gmysql.conf'; $tpl = NULL; unset($tpl); if (!DaemonCommon::systemWriteContentToFile($confFile, $config, DaemonConfig::$cfg->{'ROOT_USER'}, DaemonConfig::$cfg->{'ROOT_GROUP'}, 0640)) { return 'Error: Failed to write ' . $confFile; } // Installing the new file exec(DaemonConfig::$cmd->{'CMD_CP'} . ' -pf ' . DaemonConfig::$cfg->{'CONF_DIR'} . '/pdns/working/pdns.local.gmysql.conf ' . DaemonConfig::$distro->{'PDNS_DB_DIR'} . '/pdns.local.gmysql.conf', $result, $error); if (file_exists(DaemonConfig::$distro->{'PDNS_DB_DIR'} . '/../bindbackend.conf')) { unlink(DaemonConfig::$distro->{'PDNS_DB_DIR'} . '/../bindbackend.conf'); } if (file_exists(DaemonConfig::$distro->{'PDNS_DB_DIR'} . '/pdns.simplebind.conf')) { unlink(DaemonConfig::$distro->{'PDNS_DB_DIR'} . '/pdns.simplebind.conf'); } break; case 'Ubuntu_14.04': exec(DaemonConfig::$cmd->{'CMD_CP'} . ' -pf ' . DaemonConfig::$cfg->{'CONF_DIR'} . '/pdns/parts/pdns_14.04.conf ' . DaemonConfig::$cfg->{'CONF_DIR'} . '/pdns/working/pdns.conf', $result, $error); $tpl = DaemonCommon::getTemplate($tpl_param); $config = $tpl->fetch('pdns/parts/pdns.local.gmysql.conf'); $confFile = DaemonConfig::$cfg->{'CONF_DIR'} . '/pdns/working/pdns.local.gmysql.conf'; $tpl = NULL; unset($tpl); if (!DaemonCommon::systemWriteContentToFile($confFile, $config, DaemonConfig::$cfg->{'ROOT_USER'}, DaemonConfig::$cfg->{'ROOT_GROUP'}, 0640)) { return 'Error: Failed to write ' . $confFile; } // Installing the new file exec(DaemonConfig::$cmd->{'CMD_CP'} . ' -pf ' . DaemonConfig::$cfg->{'CONF_DIR'} . '/pdns/working/pdns.local.gmysql.conf ' . DaemonConfig::$distro->{'PDNS_DB_DIR'} . '/pdns.local.gmysql.conf', $result, $error); if (file_exists(DaemonConfig::$distro->{'PDNS_DB_DIR'} . '/../bindbackend.conf')) { unlink(DaemonConfig::$distro->{'PDNS_DB_DIR'} . '/../bindbackend.conf'); } if (file_exists(DaemonConfig::$distro->{'PDNS_DB_DIR'} . '/pdns.simplebind.conf')) { unlink(DaemonConfig::$distro->{'PDNS_DB_DIR'} . '/pdns.simplebind.conf'); } break; default: exec(DaemonConfig::$cmd->{'CMD_CP'} . ' -f ' . DaemonConfig::$cfg->{'CONF_DIR'} . '/pdns/parts/pdns.conf ' . DaemonConfig::$cfg->{'CONF_DIR'} . '/pdns/working/pdns.conf', $result, $error); $tpl = DaemonCommon::getTemplate($tpl_param); $config = $tpl->fetch('pdns/parts/pdns.local.gmysql'); $confFile = DaemonConfig::$cfg->{'CONF_DIR'} . '/pdns/working/pdns.local.gmysql'; $tpl = NULL; unset($tpl); if (!DaemonCommon::systemWriteContentToFile($confFile, $config, DaemonConfig::$cfg->{'ROOT_USER'}, DaemonConfig::$cfg->{'ROOT_GROUP'}, 0640)) { return 'Error: Failed to write ' . $confFile; } // Installing the new file exec(DaemonConfig::$cmd->{'CMD_CP'} . ' -pf ' . DaemonConfig::$cfg->{'CONF_DIR'} . '/pdns/working/pdns.local.gmysql ' . DaemonConfig::$distro->{'PDNS_DB_DIR'} . '/pdns.local.gmysql', $result, $error); if (file_exists(DaemonConfig::$distro->{'PDNS_DB_DIR'} . '/../bindbackend.conf')) { unlink(DaemonConfig::$distro->{'PDNS_DB_DIR'} . '/../bindbackend.conf'); } if (file_exists(DaemonConfig::$distro->{'PDNS_DB_DIR'} . '/pdns.simplebind')) { unlink(DaemonConfig::$distro->{'PDNS_DB_DIR'} . '/pdns.simplebind'); } } // Backup current pdns.conf if exists if (file_exists(DaemonConfig::$distro->{'PDNS_CONF_FILE'})) { exec(DaemonConfig::$cmd->{'CMD_CP'} . ' -pf ' . DaemonConfig::$distro->{'PDNS_CONF_FILE'} . ' ' . DaemonConfig::$cfg->{'CONF_DIR'} . '/pdns/backup/pdns.conf' . '_' . date("Y_m_d_H_i_s"), $result, $error); } DaemonCommon::systemSetFilePermissions(DaemonConfig::$cfg->{'CONF_DIR'} . '/pdns/working/pdns.conf', DaemonConfig::$cfg->{'ROOT_USER'}, DaemonConfig::$cfg->{'ROOT_GROUP'}, 0640); exec(DaemonConfig::$cmd->{'CMD_CP'} . ' -pf ' . DaemonConfig::$cfg->{'CONF_DIR'} . '/pdns/working/pdns.conf ' . DaemonConfig::$distro->{'PDNS_CONF_FILE'}, $result, $error); System_Daemon::debug('Finished "DaemonConfigDNS::SavePDNSConfig" subprocess.'); return true; }
private static function DaemonMailAddNormalMail($row) { System_Daemon::debug('Starting "DaemonMail::DaemonMailAddNormalMail = ' . json_encode($row) . '" subprocess.'); $sql_param = array(':email' => $row['mail_addr'], ':pass' => DB::decrypt_data($row['mail_pass'])); switch (DaemonConfig::$cfg->{'DistName'} . '_' . DaemonConfig::$cfg->{'DistVersion'}) { case 'CentOS_6': $sql_query = "\n\t\t\t\t\tINSERT INTO\n\t\t\t\t\t\tmail.users\n\t\t\t\t\t\t\t(email, password)\n\t\t\t\t\tVALUES\n\t\t\t\t\t\t(:email, ENCRYPT(:pass))\n\t\t\t\t\tON DUPLICATE KEY UPDATE\n\t\t\t\t\t\temail = :email, password = ENCRYPT(:pass);\n\n\t\t\t\t"; break; default: $sql_query = "\n\t\t\t\t\tINSERT INTO\n\t\t\t\t\t\tmail.users (email, password)\n\t\t\t\t\tVALUES\n\t\t\t\t\t\t(:email, SHA2(:pass, 256))\n\t\t\t\t\tON DUPLICATE KEY UPDATE\n\t\t\t\t\t\temail = :email, password = SHA2(:pass, 256);\n\n\t\t\t\t"; } DB::prepare($sql_query); // DB::execute($sql_param)->closeCursor(); $stmt = DB::execute($sql_param); if ($stmt->errorCode() == '00000') { $mail_ok = true; } else { $mail_ok = false; } $stmt->closeCursor(); System_Daemon::debug('Finished "DaemonMail::DaemonMailAddNormalMail" subprocess.'); return $mail_ok; }
/** * @return mixed */ public static function SaveProFTPdConfig() { System_Daemon::debug('Starting "DaemonConfigFTP::SaveProFTPdConfig" subprocess.'); $xml = simplexml_load_file(DaemonConfig::$cfg->{'CONF_DIR'} . '/EasySCP_Config_FTP.xml'); // Create config dir if it doesn't exists if (!file_exists(DaemonConfig::$distro->{'FTPD_CONF_DIR'})) { DaemonCommon::systemCreateDirectory(DaemonConfig::$distro->{'FTPD_CONF_DIR'}, DaemonConfig::$cfg->{'ROOT_USER'}, DaemonConfig::$cfg->{'ROOT_GROUP'}, 0755); } // Backup current proftpd.conf if exists if (file_exists(DaemonConfig::$distro->{'FTPD_CONF_FILE'})) { exec(DaemonConfig::$cmd->{'CMD_CP'} . ' -pf ' . DaemonConfig::$distro->{'FTPD_CONF_FILE'} . ' ' . DaemonConfig::$cfg->{'CONF_DIR'} . '/proftpd/backup/proftpd.conf' . '_' . date("Y_m_d_H_i_s"), $result, $error); } // Loading the template from /etc/easyscp/proftpd/parts/, Building the new file // Store the new file in working directory $tpl_param = array('HOST_NAME' => idn_to_ascii(DaemonConfig::$cfg->{'SERVER_HOSTNAME'})); $tpl_param['UseIPv6'] = isset(DaemonConfig::$cfg->{'BASE_SERVER_IPv6'}) && DaemonConfig::$cfg->{'BASE_SERVER_IPv6'} != '' ? 'on' : 'off'; $tpl = DaemonCommon::getTemplate($tpl_param); $config = $tpl->fetch('proftpd/parts/proftpd_' . DaemonConfig::$cfg->{'DistVersion'} . '.conf'); $confFile = DaemonConfig::$cfg->{'CONF_DIR'} . '/proftpd/working/proftpd.conf'; $tpl = NULL; unset($tpl); if (!DaemonCommon::systemWriteContentToFile($confFile, $config, DaemonConfig::$cfg->{'ROOT_USER'}, DaemonConfig::$cfg->{'ROOT_GROUP'}, 0600)) { return 'Error: Failed to write ' . $confFile; } // Installing the new file exec(DaemonConfig::$cmd->{'CMD_CP'} . ' -pf ' . DaemonConfig::$cfg->{'CONF_DIR'} . '/proftpd/working/proftpd.conf ' . DaemonConfig::$distro->{'FTPD_CONF_FILE'}, $result, $error); $tpl_param = array('DATABASE_NAME' => $xml->{'DB_DATABASE'}, 'DATABASE_HOST' => $xml->{'DB_HOST'}, 'DATABASE_USER' => $xml->{'FTP_USER'}, 'DATABASE_PASS' => DB::decrypt_data($xml->{'FTP_PASSWORD'}), 'FTPD_MIN_UID' => DaemonConfig::$cfg->{'APACHE_SUEXEC_MIN_UID'}, 'FTPD_MIN_GID' => DaemonConfig::$cfg->{'APACHE_SUEXEC_MIN_GID'}); $tpl = DaemonCommon::getTemplate($tpl_param); $config = $tpl->fetch('proftpd/parts/sql.conf'); $confFile = DaemonConfig::$cfg->{'CONF_DIR'} . '/proftpd/working/sql.conf'; $tpl = NULL; unset($tpl); if (!DaemonCommon::systemWriteContentToFile($confFile, $config, DaemonConfig::$cfg->{'ROOT_USER'}, DaemonConfig::$cfg->{'ROOT_GROUP'}, 0600)) { return 'Error: Failed to write ' . $confFile; } // Installing the new file exec(DaemonConfig::$cmd->{'CMD_CP'} . ' -pf ' . DaemonConfig::$cfg->{'CONF_DIR'} . '/proftpd/working/sql.conf ' . DaemonConfig::$distro->FTPD_SQL_CONF_FILE, $result, $error); if (file_exists(DaemonConfig::$cfg->{'CONF_DIR'} . '/proftpd/parts/modules_' . DaemonConfig::$cfg->{'DistVersion'} . '.conf')) { exec(DaemonConfig::$cmd->{'CMD_CP'} . ' -pf ' . DaemonConfig::$cfg->{'CONF_DIR'} . '/proftpd/parts/modules_' . DaemonConfig::$cfg->{'DistVersion'} . '.conf ' . DaemonConfig::$cfg->{'CONF_DIR'} . '/proftpd/working/modules.conf', $result, $error); DaemonCommon::systemSetFilePermissions(DaemonConfig::$cfg->{'CONF_DIR'} . '/proftpd/working/modules.conf', DaemonConfig::$cfg->{'ROOT_USER'}, DaemonConfig::$cfg->{'ROOT_GROUP'}, 0644); exec(DaemonConfig::$cmd->{'CMD_CP'} . ' -pf ' . DaemonConfig::$cfg->{'CONF_DIR'} . '/proftpd/working/modules.conf ' . DaemonConfig::$distro->FTPD_MODULES_CONF_FILE, $result, $error); } $tpl_param = array('APACHE_WWW_DIR' => DaemonConfig::$distro->{'APACHE_WWW_DIR'}); $tpl = DaemonCommon::getTemplate($tpl_param); $config = $tpl->fetch('proftpd/parts/master.conf'); $confFile = DaemonConfig::$cfg->{'CONF_DIR'} . '/proftpd/working/' . DaemonConfig::$cfg->{'SERVER_HOSTNAME'} . '.conf'; $tpl = NULL; unset($tpl); if (!DaemonCommon::systemWriteContentToFile($confFile, $config, DaemonConfig::$cfg->{'ROOT_USER'}, DaemonConfig::$cfg->{'ROOT_GROUP'}, 0600)) { return 'Error: Failed to write ' . $confFile; } // Installing the new file exec(DaemonConfig::$cmd->{'CMD_CP'} . ' -pf ' . DaemonConfig::$cfg->{'CONF_DIR'} . '/proftpd/working/' . DaemonConfig::$cfg->{'SERVER_HOSTNAME'} . '.conf ' . DaemonConfig::$distro->{'FTPD_CONF_DIR'} . '/' . DaemonConfig::$cfg->{'SERVER_HOSTNAME'} . '.conf', $result, $error); System_Daemon::debug('Finished "DaemonConfigFTP::SaveProFTPdConfig" subprocess.'); return true; }