Beispiel #1
0
function GUI_PHP()
{
    // Create the fcgi directories tree for the GUI if it doesn't exists
    DaemonCommon::systemCreateDirectory(DaemonConfig::$distro->{'PHP_STARTER_DIR'} . '/master', DaemonConfig::$cfg->{'APACHE_SUEXEC_USER_PREF'} . DaemonConfig::$cfg->{'APACHE_SUEXEC_MIN_UID'}, DaemonConfig::$cfg->{'APACHE_SUEXEC_USER_PREF'} . DaemonConfig::$cfg->{'APACHE_SUEXEC_MIN_GID'}, 0555);
    DaemonCommon::systemCreateDirectory(DaemonConfig::$distro->{'PHP_STARTER_DIR'} . '/master/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'}, 0555);
    // PHP5 Starter script
    // Loading the template from /etc/easyscp/fcgi/parts/master, Building the new file
    // and Storing the new file in the working directory
    $tpl_param = array('PHP_STARTER_DIR' => DaemonConfig::$distro->{'PHP_STARTER_DIR'}, 'DOMAIN_NAME' => 'master', 'GUI_ROOT_DIR' => DaemonConfig::$cfg->{'GUI_ROOT_DIR'}, 'PHP_FASTCGI_BIN' => DaemonConfig::$distro->{'PHP_FASTCGI_BIN'});
    $tpl = DaemonCommon::getTemplate($tpl_param);
    $config = $tpl->fetch('fcgi/parts/master.php-fcgi-starter.tpl');
    $confFile = DaemonConfig::$cfg->{'CONF_DIR'} . '/fcgi/working/master.php-fcgi-starter';
    $tpl = NULL;
    unset($tpl);
    if (!DaemonCommon::systemWriteContentToFile($confFile, $config, DaemonConfig::$cfg->{'APACHE_SUEXEC_USER_PREF'} . DaemonConfig::$cfg->{'APACHE_SUEXEC_MIN_UID'}, DaemonConfig::$cfg->{'APACHE_SUEXEC_USER_PREF'} . DaemonConfig::$cfg->{'APACHE_SUEXEC_MIN_GID'}, 0550)) {
        return 'Error: Failed to write ' . $confFile;
    }
    // Install the new file
    exec(DaemonConfig::$cmd->{'CMD_CP'} . ' -pf ' . DaemonConfig::$cfg->{'CONF_DIR'} . '/fcgi/working/master.php-fcgi-starter ' . DaemonConfig::$distro->{'PHP_STARTER_DIR'} . '/master/php-fcgi-starter', $result, $error);
    // PHP5 php.ini file
    // Loading the template from /etc/easyscp/fcgi/parts/master/php, Building the new file
    // and Store the new file in working directory
    $tpl_param = array('WWW_DIR' => DaemonConfig::$cfg->{'ROOT_DIR'}, 'DOMAIN_NAME' => 'gui', 'MAIL_DMN' => idn_to_ascii(DaemonConfig::$cfg->{'BASE_SERVER_VHOST'}), 'CONF_DIR' => DaemonConfig::$cfg->{'CONF_DIR'}, 'PEAR_DIR' => DaemonConfig::$distro->{'PEAR_DIR'}, 'RKHUNTER_LOG' => DaemonConfig::$distro->{'RKHUNTER_LOG'}, 'CHKROOTKIT_LOG' => DaemonConfig::$distro->{'CHKROOTKIT_LOG'}, 'OTHER_ROOTKIT_LOG' => DaemonConfig::$distro->{'OTHER_ROOTKIT_LOG'} != '' ? DaemonConfig::$distro->{'OTHER_ROOTKIT_LOG'} : '', 'EASYSCPC_DIR' => dirname(DaemonConfig::$cfg->{'SOCK_EASYSCPC'}), 'EASYSCPD_DIR' => dirname(DaemonConfig::$cfg->{'SOCK_EASYSCPD'}), 'PHP_STARTER_DIR' => DaemonConfig::$distro->{'PHP_STARTER_DIR'}, 'PHP_TIMEZONE' => DaemonConfig::$cfg->{'PHP_TIMEZONE'});
    $tpl = DaemonCommon::getTemplate($tpl_param);
    $config = $tpl->fetch('fcgi/parts/php/master.php_' . DaemonConfig::$cfg->{'DistVersion'} . '.ini');
    $confFile = DaemonConfig::$cfg->{'CONF_DIR'} . '/fcgi/working/master.php.ini';
    $tpl = NULL;
    unset($tpl);
    if (!DaemonCommon::systemWriteContentToFile($confFile, $config, DaemonConfig::$cfg->{'APACHE_SUEXEC_USER_PREF'} . DaemonConfig::$cfg->{'APACHE_SUEXEC_MIN_UID'}, DaemonConfig::$cfg->{'APACHE_SUEXEC_USER_PREF'} . DaemonConfig::$cfg->{'APACHE_SUEXEC_MIN_GID'}, 0440)) {
        return 'Error: Failed to write ' . $confFile;
    }
    // Install the new file
    exec(DaemonConfig::$cmd->{'CMD_CP'} . ' -pf ' . DaemonConfig::$cfg->{'CONF_DIR'} . '/fcgi/working/master.php.ini ' . DaemonConfig::$distro->{'PHP_STARTER_DIR'} . '/master/php/php.ini', $result, $error);
    return 'Ok';
}
Beispiel #2
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;
 }
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
 /**
  * @param array $domainData
  * @return boolean
  */
 protected static function directoriesCreateHtdocsStructure($domainData)
 {
     $homeDir = DaemonConfig::$distro->APACHE_WWW_DIR . "/" . $domainData['domain_name'];
     if (isset($domainData['mount'])) {
         $homeDir .= "/" . $domainData['mount'];
     }
     $sysUser = DaemonConfig::$cfg->APACHE_SUEXEC_USER_PREF . $domainData['domain_uid'];
     $sysGroup = DaemonConfig::$cfg->APACHE_SUEXEC_USER_PREF . $domainData['domain_gid'];
     $retVal = DaemonCommon::systemCreateDirectory($homeDir, $sysUser, $sysGroup, 0755);
     if ($retVal !== true) {
         $msg = 'Failed to create ' . $homeDir . '!';
         System_Daemon::warning($msg);
         return $msg . '<br />' . $retVal;
     }
     if (!isset($domainData['mount'])) {
         $retVal = DaemonCommon::systemCreateDirectory($homeDir . '/backups', $sysUser, $sysGroup, 0755);
         if ($retVal !== true) {
             $msg = 'Failed to create ' . $homeDir . '/backups!';
             System_Daemon::warning($msg);
             return $msg . '<br />' . $retVal;
         }
         $retVal = self::directoriesCreateDisabled($domainData);
         if ($retVal !== true) {
             $msg = 'Failed to create disabled directory!';
             System_Daemon::warning($msg);
             return $msg . '<br />' . $retVal;
         }
         $retVal = DaemonCommon::systemCreateDirectory($homeDir . '/logs', $sysUser, $sysGroup, 0700);
         if ($retVal !== true) {
             $msg = 'Failed to create ' . $homeDir . '/logs!';
             System_Daemon::warning($msg);
             return $msg . '<br />' . $retVal;
         }
         $retVal = DaemonCommon::systemCreateDirectory($homeDir . '/phptmp', $sysUser, $sysGroup, 0770);
         if ($retVal !== true) {
             $msg = 'Failed to create ' . $homeDir . '/phptmp!';
             System_Daemon::warning($msg);
             return $msg . '<br />' . $retVal;
         }
     }
     $retVal = DaemonCommon::systemCreateDirectory($homeDir . '/cgi-bin', $sysUser, $sysGroup, 0755);
     if ($retVal !== true) {
         $msg = 'Failed to create ' . $homeDir . '/cgi-bin!';
         System_Daemon::warning($msg);
         return $msg . '<br />' . $retVal;
     }
     $retVal = self::directoriesCreateError($domainData);
     if ($retVal !== true) {
         $msg = 'Failed to create error directory!';
         System_Daemon::warning($msg);
         return $msg . '<br />' . $retVal;
     }
     $retVal = self::directoriesCreateHtdocs($domainData);
     if ($retVal !== true) {
         $msg = 'Failed to create htdocs directory!';
         System_Daemon::warning($msg);
         return $msg . '<br />' . $retVal;
     }
     $retVal = DaemonCommon::systemCreateDirectory($homeDir . '/statistics', $sysUser, $sysGroup, 0755);
     if ($retVal !== true) {
         $msg = 'Failed to create ' . $homeDir . '/statistics!';
         System_Daemon::warning($msg);
         return $msg . '<br />' . $retVal;
     }
     return true;
 }