- Checking memory_limit during the setup

SVN:trunk[415]
This commit is contained in:
Denis Flaven
2010-05-16 16:54:08 +00:00
parent e8d4cccf8f
commit 15352ad018

View File

@@ -13,6 +13,8 @@ define('SETUP_STRUCTURE_DATA_DIR', './data/structure');
define('SETUP_SAMPLE_DATA_DIR', './data');
define('PHP_MIN_VERSION', '5.2.0');
define('MYSQL_MIN_VERSION', '5.0.0');
define('MIN_MEMORY_LIMIT', 32*1024*1024);
$sOperation = Utils::ReadParam('operation', 'step1');
$oP = new SetupWebPage('iTop configuration wizard');
@@ -46,7 +48,41 @@ function GetTmpDir()
}
}
/**
* Check the value of the PHP setting 'memory_limit'
* against the minimum recommended value
* @param SetpWebPage $oP The current web page
* @param integer $iMinMemoryRequired The minimum memory for the test to pass
* @return boolean Whether or not it's Ok to continue
*/
function CheckMemoryLimit(SetupWebPage $oP, $iMinMemoryRequired)
{
$sMemoryLimit = trim(ini_get('memory_limit'));
$bResult = true;
if (empty($sMemoryLimit))
{
// On some PHP installations, memory_limit does not exist as a PHP setting!
// (encountered on a 5.2.0 under Windows)
// In that case, ini_set will not work, let's keep track of this and proceed anyway
$oP->warning("No memory limit has been defined in this instance of PHP");
}
else
{
// Check that the limit will allow us to load the data
//
$iMemoryLimit = utils::ConvertToBytes($sMemoryLimit);
if ($iMemoryLimit < $iMinMemoryRequired)
{
$oP->error("memory_limit ($iMemoryLimit) is too small, the minimum value to run iTop is $iMinMemoryRequired.");
$bResult = false;
}
else
{
$oP->log_info("memory_limit is $iMemoryLimit, ok.");
}
}
return $bResult;
}
/**
* Helper function to retrieve the directory where files are to be uploaded
* @return string Path to the temp directory used for uploading files
@@ -168,6 +204,8 @@ function CheckPHPVersion(SetupWebPage $oP)
$bResult = false;
}
$bResult = $bResult & CheckMemoryLimit($oP, MIN_MEMORY_LIMIT);
return $bResult;
}