From df0089f3adb62ad40d0ec3296eddc52f6b4463fe Mon Sep 17 00:00:00 2001
From: mcramer <m.cramer@pixcept.de>
Date: Mon, 08 Jun 2009 02:45:15 -0400
Subject: [PATCH] - checking for correct working directory in install and update - checking for running instance in server.php

---
 install/install.php |    4 ++++
 server/server.php   |    5 +++++
 install/update.php  |    4 ++++
 3 files changed, 13 insertions(+), 0 deletions(-)

diff --git a/install/install.php b/install/install.php
index 9474eb5..6765170 100644
--- a/install/install.php
+++ b/install/install.php
@@ -53,6 +53,10 @@
 //** Include the base class of the installer class
 require_once('lib/installer_base.lib.php');
 
+//** Ensure that current working directory is install directory
+$cur_dir = getcwd();
+if(realpath(dirname(__FILE__)) != $cur_dir) die("Please run installation/update from _inside_ the install directory!\n");
+
 //** Install logfile
 define('ISPC_LOG_FILE', '/var/log/ispconfig_install.log');
 define('ISPC_INSTALL_ROOT', realpath(dirname(__FILE__).'/../'));
diff --git a/install/update.php b/install/update.php
index 727dfd0..2fb2d9b 100644
--- a/install/update.php
+++ b/install/update.php
@@ -53,6 +53,10 @@
 //** Include the base class of the installer class
 require_once('lib/installer_base.lib.php');
 
+//** Ensure that current working directory is install directory
+$cur_dir = getcwd();
+if(realpath(dirname(__FILE__)) != $cur_dir) die("Please run installation/update from _inside_ the install directory!\n");
+
 //** Install logfile
 define('ISPC_LOG_FILE', '/var/log/ispconfig_install.log');
 define('ISPC_INSTALL_ROOT', realpath(dirname(__FILE__).'/../'));
diff --git a/server/server.php b/server/server.php
index 3646f81..fcb7e81 100644
--- a/server/server.php
+++ b/server/server.php
@@ -56,6 +56,11 @@
   clearstatcache();
   for($i=0;$i<1200;$i++){ // Wait max. 1200 sec, then proceed
     if(is_file($conf["temppath"].$conf["fs_div"].".ispconfig_lock")){
+      exec("ps aux | grep '/usr/local/ispconfig/server/server.php' | grep -v 'grep' | wc -l", $check);
+      if(intval($check[0]) > 1) { // 1 because this is 2nd instance!
+          $app->log("There is already an instance of server.php running. Exiting.", LOGLEVEL_DEBUG);
+          exit;
+      }
 	  $app->log("There is already a lockfile set. Waiting another 10 seconds...", LOGLEVEL_DEBUG);
       sleep(10);
       clearstatcache();

--
Gitblit v1.9.1