Beispiel #1
0
 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.');
 }
Beispiel #2
0
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';
    }
}
Beispiel #3
0
 /**
  * @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;
 }
Beispiel #4
0
 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;
 }
Beispiel #5
0
 /**
  * @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;
 }