From 2c7ee0fd03f12841c2a6dbb1f3a574e28ed7a1e7 Mon Sep 17 00:00:00 2001 From: mcramer <m.cramer@pixcept.de> Date: Tue, 23 Jun 2009 12:42:04 -0400 Subject: [PATCH] Fixed: Correct chroot handling of cron jobs Changed: separate crontab files for chrooted and other cron jobs --- server/plugins-available/apache2_plugin.inc.php | 56 ++++++++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 48 insertions(+), 8 deletions(-) diff --git a/server/plugins-available/apache2_plugin.inc.php b/server/plugins-available/apache2_plugin.inc.php index 397df8e..db4266f 100644 --- a/server/plugins-available/apache2_plugin.inc.php +++ b/server/plugins-available/apache2_plugin.inc.php @@ -146,8 +146,12 @@ @unlink($rand_file); $ssl_request = file_get_contents($csr_file); $ssl_cert = file_get_contents($crt_file); + /* Update the DB of the (local) Server */ $app->db->query("UPDATE web_domain SET ssl_request = '$ssl_request', ssl_cert = '$ssl_cert' WHERE domain = '".$data["new"]["domain"]."'"); $app->db->query("UPDATE web_domain SET ssl_action = '' WHERE domain = '".$data["new"]["domain"]."'"); + /* Update also the master-DB of the Server-Farm */ + $app->dbmaster->query("UPDATE web_domain SET ssl_request = '$ssl_request', ssl_cert = '$ssl_cert' WHERE domain = '".$data["new"]["domain"]."'"); + $app->dbmaster->query("UPDATE web_domain SET ssl_action = '' WHERE domain = '".$data["new"]["domain"]."'"); } //* Save a SSL certificate to disk @@ -160,7 +164,10 @@ file_put_contents($csr_file,$data["new"]["ssl_request"]); file_put_contents($crt_file,$data["new"]["ssl_cert"]); if(trim($data["new"]["ssl_bundle"]) != '') file_put_contents($bundle_file,$data["new"]["ssl_bundle"]); + /* Update the DB of the (local) Server */ $app->db->query("UPDATE web_domain SET ssl_action = '' WHERE domain = '".$data["new"]["domain"]."'"); + /* Update also the master-DB of the Server-Farm */ + $app->dbmaster->query("UPDATE web_domain SET ssl_action = '' WHERE domain = '".$data["new"]["domain"]."'"); $app->log("Saving SSL Cert for: $domain",LOGLEVEL_DEBUG); } @@ -174,7 +181,12 @@ unlink($csr_file); unlink($crt_file); unlink($bundle_file); + /* Update the DB of the (local) Server */ + $app->db->query("UPDATE web_domain SET ssl_request = '', ssl_cert = '' WHERE domain = '".$data["new"]["domain"]."'"); $app->db->query("UPDATE web_domain SET ssl_action = '' WHERE domain = '".$data["new"]["domain"]."'"); + /* Update also the master-DB of the Server-Farm */ + $app->dbmaster->query("UPDATE web_domain SET ssl_request = '', ssl_cert = '' WHERE domain = '".$data["new"]["domain"]."'"); + $app->dbmaster->query("UPDATE web_domain SET ssl_action = '' WHERE domain = '".$data["new"]["domain"]."'"); $app->log("Deleting SSL Cert for: $domain",LOGLEVEL_DEBUG); } @@ -270,12 +282,18 @@ exec('mv '.$data["old"]["document_root"].' '.$new_dir); $app->log("Moving site to new document root: ".'mv '.$data["old"]["document_root"].' '.$new_dir,LOGLEVEL_DEBUG); + //* Change the owner of the website files to the new website owner + exec('chown --recursive --from='.escapeshellcmd($data["old"]["system_user"]).':'.escapeshellcmd($data['old']['system_group']).' '.escapeshellcmd($data["new"]["system_user"]).':'.escapeshellcmd($data['new']['system_group']).' '.$new_dir); + //* Change the home directory and group of the website user $command = 'usermod'; $command .= ' --home '.escapeshellcmd($data["new"]["document_root"]); $command .= ' --gid '.escapeshellcmd($data['new']['system_group']); $command .= ' '.escapeshellcmd($data["new"]["system_user"]); exec($command); + + + } @@ -488,6 +506,7 @@ // Rewrite rules $rewrite_rules = array(); if($data["new"]["redirect_type"] != '') { + if(substr($data["new"]["redirect_path"],-1) != '/') $data["new"]["redirect_path"] .= '/'; $rewrite_rules[] = array( 'rewrite_domain' => $data["new"]["domain"], 'rewrite_type' => ($data["new"]["redirect_type"] == 'no')?'':'['.$data["new"]["redirect_type"].']', 'rewrite_target' => $data["new"]["redirect_path"]); @@ -509,30 +528,32 @@ // get alias domains (co-domains and subdomains) $aliases = $app->db->queryAllRecords("SELECT * FROM web_domain WHERE parent_domain_id = ".$data["new"]["domain_id"]." AND active = 'y'"); - switch($data["new"]["subdomain"]) { + $server_alias = array(); + switch($data["new"]["subdomain"]) { case 'www': - $server_alias .= 'www.'.$data["new"]["domain"].' '; + $server_alias[] .= 'www.'.$data["new"]["domain"].' '; break; case '*': - $server_alias .= '*.'.$data["new"]["domain"].' '; + $server_alias[] .= '*.'.$data["new"]["domain"].' '; break; } if(is_array($aliases)) { foreach($aliases as $alias) { switch($alias["subdomain"]) { case 'www': - $server_alias .= 'www.'.$alias["domain"].' '.$alias["domain"].' '; + $server_alias[] .= 'www.'.$alias["domain"].' '.$alias["domain"].' '; break; case '*': - $server_alias .= '*.'.$alias["domain"].' '.$alias["domain"].' '; + $server_alias[] .= '*.'.$alias["domain"].' '.$alias["domain"].' '; break; default: - $server_alias .= $alias["domain"].' '; + $server_alias[] .= $alias["domain"].' '; break; } $app->log("Add server alias: $alias[domain]",LOGLEVEL_DEBUG); // Rewriting if($alias["redirect_type"] != '') { + if(substr($data["new"]["redirect_path"],-1) != '/') $data["new"]["redirect_path"] .= '/'; $rewrite_rules[] = array( 'rewrite_domain' => $alias["domain"], 'rewrite_type' => ($alias["redirect_type"] == 'no')?'':'['.$alias["redirect_type"].']', 'rewrite_target' => $alias["redirect_path"]); @@ -552,7 +573,24 @@ } } } - $tpl->setVar('alias',trim($server_alias)); + + //* If we have some alias records + if(count($server_alias) > 0) { + $server_alias_str = ''; + $n = 0; + + // begin a new ServerAlias line after 30 alias domains + foreach($server_alias as $tmp_alias) { + if($n % 30 == 0) $server_alias_str .= "\n ServerAlias "; + $server_alias_str .= $tmp_alias; + } + unset($tmp_alias); + + $tpl->setVar('alias',trim($server_alias_str)); + } else { + $tpl->setVar('alias',''); + } + if(count($rewrite_rules) > 0) { $tpl->setVar('rewrite_enabled',1); } else { @@ -577,12 +615,14 @@ if (!is_dir($fastcgi_starter_path)) { exec("mkdir -p ".escapeshellcmd($fastcgi_starter_path)); - exec("chown ".$data["new"]["system_user"].":".$data["new"]["system_group"]." ".escapeshellcmd($fastcgi_starter_path)); + //exec("chown ".$data["new"]["system_user"].":".$data["new"]["system_group"]." ".escapeshellcmd($fastcgi_starter_path)); $app->log("Creating fastcgi starter script directory: $fastcgi_starter_path",LOGLEVEL_DEBUG); } + exec("chown -R ".$data["new"]["system_user"].":".$data["new"]["system_group"]." ".escapeshellcmd($fastcgi_starter_path)); + $fcgi_tpl = new tpl(); $fcgi_tpl->newTemplate("php-fcgi-starter.master"); -- Gitblit v1.9.1