From 3ee39be0bdc245c0aba35b4430fb0b71027d2ea3 Mon Sep 17 00:00:00 2001
From: mcramer <m.cramer@pixcept.de>
Date: Wed, 21 Nov 2012 10:14:46 -0500
Subject: [PATCH] FS#2546 - Update all custom php.ini files for webs on main php.ini change  - added configuration options to server config (web tab, php section)  - do not update custom php.inis if md5sum file does not exist

---
 server/plugins-available/webserver_plugin.inc.php |   16 +++++++++++++---
 1 files changed, 13 insertions(+), 3 deletions(-)

diff --git a/server/plugins-available/webserver_plugin.inc.php b/server/plugins-available/webserver_plugin.inc.php
index f7d888b..5678444 100644
--- a/server/plugins-available/webserver_plugin.inc.php
+++ b/server/plugins-available/webserver_plugin.inc.php
@@ -79,6 +79,11 @@
         $web_config = $app->getconf->get_server_config($conf['server_id'], 'web');
         $fastcgi_config = $app->getconf->get_server_config($conf['server_id'], 'fastcgi');
         
+        if($web_config['php_ini_check_minutes'] == 0 || @date('i') % $web_config['php_ini_check_minutes'] != 0) {
+            $app->log('Info: php.ini change checking not enabled or not in this minute: ' . $web_config['php_ini_check_minutes'],LOGLEVEL_DEBUG);
+            return; // do not process
+        }
+        
         //** add default php.ini files to check
         $check_files[] = array('file' => $web_config['php_ini_path_apache'],
                                'mode' => 'mod',
@@ -118,7 +123,12 @@
         $new_php_ini_md5 = array();
         $php_ini_md5 = array();
         $php_ini_changed = false;
-        if(file_exists(SCRIPT_PATH . '/php.ini.md5sum')) $php_ini_md5 = unserialize(base64_decode(trim($app->system->file_get_contents(SCRIPT_PATH . '/php.ini.md5sum'))));
+        $rewrite_ini_files = false;
+        
+        if(file_exists(SCRIPT_PATH . '/temp/php.ini.md5sum')) {
+            $rewrite_ini_files = true;
+            $php_ini_md5 = unserialize(base64_decode(trim($app->system->file_get_contents(SCRIPT_PATH . '/temp/php.ini.md5sum'))));
+        }
         if(!is_array($php_ini_md5)) $php_ini_md5 = array();
         
         $processed = array();
@@ -139,14 +149,14 @@
                 
                 $app->log('Info: PHP.ini changed: ' . $file_path . ', mode ' . $file['mode'] . ' vers ' . $file['php_version'] . '.',LOGLEVEL_DEBUG);
                 // raise action for this file
-                $app->plugins->raiseAction('php_ini_changed', $file);
+                if($rewrite_ini_files == true) $app->plugins->raiseAction('php_ini_changed', $file);
             }
             
             $new_php_ini_md5[$file_path] = $file_md5;
         }
         
         //** write new md5 sums if something changed
-        if($php_ini_changed == true) $app->system->file_put_contents(SCRIPT_PATH . '/php.ini.md5sum', base64_encode(serialize($new_php_ini_md5)));
+        if($php_ini_changed == true) $app->system->file_put_contents(SCRIPT_PATH . '/temp/php.ini.md5sum', base64_encode(serialize($new_php_ini_md5)));
         unset($new_php_ini_md5);
         unset($php_ini_md5);
         unset($processed);

--
Gitblit v1.9.1