doekia
2014-03-17 2c09b2d5984a9ab70d0062bd08a0390edaca57b4
server/plugins-available/apache2_plugin.inc.php
@@ -564,7 +564,9 @@
         //* Change the log mount
         $fstab_line = '/var/log/ispconfig/httpd/'.$data['old']['domain'].' '.$data['old']['document_root'].'/'.$log_folder.'    none    bind';
         $app->system->removeLine('/etc/fstab', $fstab_line);
         $fstab_line = '/var/log/ispconfig/httpd/'.$data['new']['domain'].' '.$data['new']['document_root'].'/'.$log_folder.'    none    bind,nobootwait    0 0';
         $fstab_line = '/var/log/ispconfig/httpd/'.$data['old']['domain'].' '.$data['old']['document_root'].'/'.$log_folder.'    none    bind,nobootwait';
         $app->system->removeLine('/etc/fstab', $fstab_line);
         $fstab_line = '/var/log/ispconfig/httpd/'.$data['new']['domain'].' '.$data['new']['document_root'].'/'.$log_folder.'    none    bind,nobootwait,_netdev    0 0';
         $app->system->replaceLine('/etc/fstab', $fstab_line, $fstab_line, 1, 1);
      }
@@ -614,7 +616,7 @@
         $app->system->chmod($data['new']['document_root'].'/'.$log_folder, 0755);
         exec('mount --bind '.escapeshellarg('/var/log/ispconfig/httpd/'.$data['new']['domain']).' '.escapeshellarg($data['new']['document_root'].'/'.$log_folder));
         //* add mountpoint to fstab
         $fstab_line = '/var/log/ispconfig/httpd/'.$data['new']['domain'].' '.$data['new']['document_root'].'/'.$log_folder.'    none    bind,nobootwait    0 0';
         $fstab_line = '/var/log/ispconfig/httpd/'.$data['new']['domain'].' '.$data['new']['document_root'].'/'.$log_folder.'    none    bind,nobootwait,_netdev    0 0';
         $app->system->replaceLine('/etc/fstab', $fstab_line, $fstab_line, 1, 1);
      }
@@ -778,7 +780,7 @@
         if($web_config['security_level'] == 20) {
            $app->system->chmod($data['new']['document_root'], 0755);
            $app->system->chmod($data['new']['document_root'].'/web', 0710);
            $app->system->chmod($data['new']['document_root'].'/web', 0711);
            $app->system->chmod($data['new']['document_root'].'/webdav', 0710);
            $app->system->chmod($data['new']['document_root'].'/private', 0710);
            $app->system->chmod($data['new']['document_root'].'/ssl', 0755);
@@ -983,6 +985,8 @@
      // Make sure we only have Unix linebreaks
      $vhost_data['apache_directives'] = str_replace("\r\n", "\n", $vhost_data['apache_directives']);
      $vhost_data['apache_directives'] = str_replace("\r", "\n", $vhost_data['apache_directives']);
      $trans = array('{DOCROOT}' => $vhost_data['web_document_root_www']);
      $vhost_data['apache_directives'] = strtr($vhost_data['apache_directives'], $trans);
      // Check if a SSL cert exists
      $ssl_dir = $data['new']['document_root'].'/ssl';
@@ -1021,6 +1025,7 @@
      }
      $tpl->setVar($vhost_data);
      $tpl->setVar('apache_version', $app->system->getapacheversion());
      // Rewrite rules
      $rewrite_rules = array();
@@ -1227,6 +1232,7 @@
         $fcgi_tpl = new tpl();
         $fcgi_tpl->newTemplate('php-fcgi-starter.master');
         $fcgi_tpl->setVar('apache_version', $app->system->getapacheversion());
         // Support for multiple PHP versions (FastCGI)
         if(trim($data['new']['fastcgi_php_version']) != ''){
@@ -1254,6 +1260,7 @@
            $fcgi_tpl->setVar('php_fcgi_bin', escapeshellcmd($custom_fastcgi_php_executable));
         }
         $fcgi_tpl->setVar('security_level', intval($web_config['security_level']));
         $fcgi_tpl->setVar('domain', escapeshellcmd($data['new']['domain']));
         $php_open_basedir = ($data['new']['php_open_basedir'] == '')?$data['new']['document_root']:$data['new']['php_open_basedir'];
         $fcgi_tpl->setVar('open_basedir', escapeshellcmd($php_open_basedir));
@@ -1366,6 +1373,7 @@
         $cgi_tpl = new tpl();
         $cgi_tpl->newTemplate('php-cgi-starter.master');
         $cgi_tpl->setVar('apache_version', $app->system->getapacheversion());
         // This works because PHP "rewrites" a symlink to the physical path
         $php_open_basedir = ($data['new']['php_open_basedir'] == '')?$data['new']['document_root']:$data['new']['php_open_basedir'];
@@ -2030,6 +2038,7 @@
      $tpl = new tpl();
      $tpl->newTemplate('apache_ispconfig.conf.master');
      $tpl->setVar('apache_version', $app->system->getapacheversion());
      $records = $app->db->queryAllRecords('SELECT * FROM server_ip WHERE server_id = '.$conf['server_id']." AND virtualhost = 'y'");
      $records_out= array();
@@ -2101,9 +2110,7 @@
      //* Create the folder path, if it does not exist
      if(!is_dir($folder_path)) {
         $app->system->mkdirpath($folder_path);
         $app->system->chown($folder_path, $website['system_user']);
         $app->system->chgrp($folder_path, $website['system_group']);
         $app->system->mkdirpath($folder_path, 0755, $website['system_user'], $website['system_group']);
      }
      //* Create empty .htpasswd file, if it does not exist
@@ -2329,6 +2336,15 @@
         $app->system->chown($new_folder_path.'.htaccess', $website['system_user']);
         $app->system->chgrp($new_folder_path.'.htaccess', $website['system_group']);
         $app->log('Created/modified file '.$new_folder_path.'.htaccess', LOGLEVEL_DEBUG);
         //* Create empty .htpasswd file, if it does not exist
         if(!is_file($folder_path.'.htpasswd')) {
            $app->system->touch($new_folder_path.'.htpasswd');
            $app->system->chmod($new_folder_path.'.htpasswd', 0750);
            $app->system->chown($new_folder_path.'.htpasswd', $website['system_user']);
            $app->system->chgrp($new_folder_path.'.htpasswd', $website['system_group']);
            $app->log('Created file '.$new_folder_path.'.htpasswd', LOGLEVEL_DEBUG);
         }
      }
      //* Remove .htaccess file
@@ -2739,7 +2755,8 @@
      $app->load('tpl');
      $tpl = new tpl();
      $tpl->newTemplate('php_fpm_pool.conf.master');
      $tpl->setVar('apache_version', $app->system->getapacheversion());
      if($data['new']['php_fpm_use_socket'] == 'y'){
         $use_tcp = 0;
         $use_socket = 1;
@@ -2768,6 +2785,7 @@
      $tpl->setVar('pm_max_requests', $data['new']['pm_max_requests']);
      $tpl->setVar('document_root', $data['new']['document_root']);
      $tpl->setVar('security_level', $web_config['security_level']);
      $tpl->setVar('domain', $data['new']['domain']);
      $php_open_basedir = ($data['new']['php_open_basedir'] == '')?escapeshellcmd($data['new']['document_root']):escapeshellcmd($data['new']['php_open_basedir']);
      $tpl->setVar('php_open_basedir', $php_open_basedir);
      if($php_open_basedir != ''){
@@ -2790,9 +2808,9 @@
               if(substr($ini_setting, 0, 1) == ';') continue;
               if(substr($ini_setting, 0, 1) == '#') continue;
               if(substr($ini_setting, 0, 2) == '//') continue;
               list($key, $value) = explode('=', $ini_setting);
               if($value){
                  $value = trim($value);
               list($key, $value) = explode('=', $ini_setting, 2);
               $value = trim($value);
               if($value != ''){
                  $key = trim($key);
                  switch (strtolower($value)) {
                  case '0':