コード例 #1
0
 /**
  * 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());
 }
コード例 #2
0
ファイル: cron_tasks.php プロジェクト: qinhai/debian-anmpz
             /*
              * 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
コード例 #3
0
ファイル: class.ConfigIO.php プロジェクト: cobrafast/Froxlor
 /**
  * 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));
         }
     }
 }