/** * create fcgid-starter-file * @param array $phpconfig */ public function createConfig($phpconfig) { // create starter $starter_file = "#!/bin/sh\n\n"; $starter_file .= "#\n"; $starter_file .= "# starter created/changed on " . date("Y.m.d H:i:s") . " for domain '" . $this->_domain['domain'] . "' with id #" . $this->_domain['id'] . " from php template '" . $phpconfig['description'] . "' with id #" . $phpconfig['id'] . "\n"; $starter_file .= "# Do not change anything in this file, it will be overwritten by the Froxlor Cronjob!\n"; $starter_file .= "#\n\n"; $starter_file .= "umask 022\n"; $starter_file .= "PHPRC=" . escapeshellarg($this->getConfigDir()) . "\n"; $starter_file .= "export PHPRC\n"; // set number of processes for one domain if ((int) $this->_domain['mod_fcgid_starter'] != -1) { $starter_file .= "PHP_FCGI_CHILDREN=" . (int) $this->_domain['mod_fcgid_starter'] . "\n"; } else { if ((int) $phpconfig['mod_fcgid_starter'] != -1) { $starter_file .= "PHP_FCGI_CHILDREN=" . (int) $phpconfig['mod_fcgid_starter'] . "\n"; } else { $starter_file .= "PHP_FCGI_CHILDREN=" . (int) Settings::Get('system.mod_fcgid_starter') . "\n"; } } $starter_file .= "export PHP_FCGI_CHILDREN\n"; // set number of maximum requests for one domain if ((int) $this->_domain['mod_fcgid_maxrequests'] != -1) { $starter_file .= "PHP_FCGI_MAX_REQUESTS=" . (int) $this->_domain['mod_fcgid_maxrequests'] . "\n"; } else { if ((int) $phpconfig['mod_fcgid_maxrequests'] != -1) { $starter_file .= "PHP_FCGI_MAX_REQUESTS=" . (int) $phpconfig['mod_fcgid_maxrequests'] . "\n"; } else { $starter_file .= "PHP_FCGI_MAX_REQUESTS=" . (int) Settings::Get('system.mod_fcgid_maxrequests') . "\n"; } } $starter_file .= "export PHP_FCGI_MAX_REQUESTS\n"; // Set Binary $starter_file .= "exec " . $phpconfig['binary'] . " -c " . escapeshellarg($this->getConfigDir()) . "\n"; //remove +i attibute, so starter can be overwritten if (file_exists($this->getStarterFile())) { removeImmutable($this->getStarterFile()); } $starter_file_handler = fopen($this->getStarterFile(), 'w'); fwrite($starter_file_handler, $starter_file); fclose($starter_file_handler); safe_exec('chmod 750 ' . escapeshellarg($this->getStarterFile())); safe_exec('chown ' . $this->_domain['guid'] . ':' . $this->_domain['guid'] . ' ' . escapeshellarg($this->getStarterFile())); setImmutable($this->getStarterFile()); }
/* * see if we have some php-fcgid leftovers if used * and remove them, #200 */ if ($settings['system']['mod_fcgid'] == 1) { // e.g. /var/www/php-fcgi-starter/web1/ $configdir = makeCorrectDir($settings['system']['mod_fcgid_configdir'] . '/' . $row['data']['loginname'] . '/'); if (is_dir($configdir)) { $its = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($configdir)); // iterate through all subdirs, // look for php-fcgi-starter files // and take immutable-flag away from them // so we can delete them :) foreach ($its as $fullFileName => $it) { if ($it->isFile() && $it->getFilename() == 'php-fcgi-starter') { removeImmutable($its->getPathname()); } } // now get rid of old stuff safe_exec('rm -rf ' . escapeshellarg($configdir)); } } } } } elseif ($row['type'] == '7') { fwrite($debugHandler, ' cron_tasks: Task7 started - deleting customer e-mail data' . "\n"); $cronlog->logAction(CRON_ACTION, LOG_INFO, 'Task7 started - deleting customer e-mail data'); if (is_array($row['data'])) { if (isset($row['data']['loginname']) && isset($row['data']['email'])) { /* * remove specific maildir
/** * remove fcgid related configuration files before regeneration * * @return null */ private function _cleanFcgidFiles() { if (Settings::Get('system.mod_fcgid') == '0') { return; } // get correct directory $configdir = $this->_getFile('system', 'mod_fcgid_configdir'); if ($configdir !== false) { $configdir = makeCorrectDir($configdir); if (@is_dir($configdir)) { // create directory iterator $its = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($configdir)); // iterate through all subdirs, // look for php-fcgi-starter files // and take immutable-flag away from them // so we can delete them :) foreach ($its as $fullFileName => $it) { if ($it->isFile() && $it->getFilename() == 'php-fcgi-starter') { // set chattr -i removeImmutable($its->getPathname()); } } // now get rid of old stuff //(but append /* so we don't delete the directory) $configdir .= '/*'; safe_exec('rm -rf ' . makeCorrectFile($configdir)); } } }