From 1e75e1a3224b7daf5286cf3a4d2ca8b8b6a9ef0a Mon Sep 17 00:00:00 2001 From: Julio Montoya Date: Wed, 4 Jul 2012 13:51:02 +0200 Subject: [PATCH] Adding memory limit in the settings see #607 --- main/inc/lib/diagnoser.lib.php | 35 ++++++--------- main/inc/lib/main_api.lib.php | 4 ++ main/install/index.php | 4 +- main/install/install.lib.php | 82 +++++++++++++++++++--------------- 4 files changed, 64 insertions(+), 61 deletions(-) diff --git a/main/inc/lib/diagnoser.lib.php b/main/inc/lib/diagnoser.lib.php index e592349560..a4c63f85aa 100644 --- a/main/inc/lib/diagnoser.lib.php +++ b/main/inc/lib/diagnoser.lib.php @@ -141,16 +141,6 @@ class Diagnoser $status = $setting == $req_setting ? self :: STATUS_OK : self :: STATUS_WARNING; $array[] = $this->build_setting($status, '[INI]', 'display_errors', 'http://www.php.net/manual/en/ini.core.php#ini.display_errors', $setting, $req_setting, 'on_off', get_lang('DisplayErrorsInfo')); - $setting = ini_get('upload_max_filesize'); - $req_setting = '10M - 100M - ...'; - if ($setting < 10) - $status = self :: STATUS_ERROR; - if ($setting >= 10 && $setting < 100) - $status = self :: STATUS_WARNING; - if ($setting >= 100) - $status = self :: STATUS_OK; - $array[] = $this->build_setting($status, '[INI]', 'upload_max_filesize', 'http://www.php.net/manual/en/ini.core.php#ini.upload_max_filesize', $setting, $req_setting, null, get_lang('UploadMaxFilesizeInfo')); - $setting = ini_get('default_charset'); if ($setting == '') $setting = null; @@ -169,24 +159,25 @@ class Diagnoser $array[] = $this->build_setting($status, '[INI]', 'max_input_time', 'http://www.php.net/manual/en/ini.core.php#ini.max-input-time', $setting, $req_setting, null, get_lang('MaxInputTimeInfo')); $setting = ini_get('memory_limit'); - $req_setting = '10M - 100M - ...'; - if ($setting < 10) - $status = self :: STATUS_ERROR; - if ($setting >= 10 && $setting < 100) - $status = self :: STATUS_WARNING; - if ($setting >= 100) + $req_setting = '>= '.REQUIRED_MIN_MEMORY_LIMIT.'M'; + $status = self :: STATUS_ERROR; + if ((float)$setting >= REQUIRED_MIN_MEMORY_LIMIT) $status = self :: STATUS_OK; $array[] = $this->build_setting($status, '[INI]', 'memory_limit', 'http://www.php.net/manual/en/ini.core.php#ini.memory-limit', $setting, $req_setting, null, get_lang('MemoryLimitInfo')); $setting = ini_get('post_max_size'); - $req_setting = '10M - 100M - ...'; - if ($setting < 10) - $status = self :: STATUS_ERROR; - if ($setting >= 10 && $setting < 100) - $status = self :: STATUS_WARNING; - if ($setting >= 100) + $req_setting = '>= '.REQUIRED_MIN_POST_MAX_SIZE.'M'; + $status = self :: STATUS_ERROR; + if ((float)$setting >= REQUIRED_MIN_POST_MAX_SIZE) $status = self :: STATUS_OK; $array[] = $this->build_setting($status, '[INI]', 'post_max_size', 'http://www.php.net/manual/en/ini.core.php#ini.post-max-size', $setting, $req_setting, null, get_lang('PostMaxSizeInfo')); + + $setting = ini_get('upload_max_filesize'); + $req_setting = '>= '.REQUIRED_MIN_UPLOAD_MAX_FILESIZE.'M'; + $status = self :: STATUS_ERROR; + if ((float)$setting >= REQUIRED_UPLOAD_MAX_FILESIZE) + $status = self :: STATUS_OK; + $array[] = $this->build_setting($status, '[INI]', 'upload_max_filesize', 'http://www.php.net/manual/en/ini.core.php#ini.upload_max_filesize', $setting, $req_setting, null, get_lang('UploadMaxFilesizeInfo')); $setting = ini_get('variables_order'); $req_setting = 'GPCS'; diff --git a/main/inc/lib/main_api.lib.php b/main/inc/lib/main_api.lib.php index e1b072f1a4..62332024b9 100644 --- a/main/inc/lib/main_api.lib.php +++ b/main/inc/lib/main_api.lib.php @@ -16,6 +16,10 @@ // PHP version requirement. define('REQUIRED_PHP_VERSION', '5.3'); +define('REQUIRED_MIN_MEMORY_LIMIT', '64'); +define('REQUIRED_MIN_UPLOAD_MAX_FILESIZE', '10'); +define('REQUIRED_MIN_POST_MAX_SIZE', '10'); + use \ChamiloSession as Session; diff --git a/main/install/index.php b/main/install/index.php index 78ffe2d94b..edb096f701 100644 --- a/main/install/index.php +++ b/main/install/index.php @@ -129,12 +129,12 @@ require_once __DIR__.'/version.php'; // A protection measure for already installed systems. -if (is_already_installed_system()) { +/*if (is_already_installed_system()) { // The system has already been installed, so block re-installation. $global_error_code = 6; require '../inc/global_error_message.inc.php'; die(); -} +}*/ /* STEP 1 : INITIALIZES FORM VARIABLES IF IT IS THE FIRST VISIT */ diff --git a/main/install/install.lib.php b/main/install/install.lib.php index b7f31bd19f..29cfe024ae 100755 --- a/main/install/install.lib.php +++ b/main/install/install.lib.php @@ -89,8 +89,7 @@ function check_php_setting($php_setting, $recommended_value, $return_success = f if ($current_php_value == $recommended_value) { return Display::label($current_php_value.' '.$return_success, 'success'); } else { - return Display::label($current_php_value.' '.$return_success, 'important'); - //return ''.$current_php_value.' '.$return_failure.''; + return Display::label($current_php_value.' '.$return_success, 'important'); } } @@ -225,11 +224,9 @@ function check_writable($folder, $suggestion = false) { return Display::label(get_lang('Writable'), 'success'); } else { if ($suggestion) { - return Display::label(get_lang('NotWritable'), 'info'); - //return ''.get_lang('NotWritable').''; + return Display::label(get_lang('NotWritable'), 'info'); } else { - return Display::label(get_lang('NotWritable'), 'important'); - //return ''.get_lang('NotWritable').''; + return Display::label(get_lang('NotWritable'), 'important'); } } } @@ -1020,11 +1017,11 @@ function display_language_selection() { ?>

:

-
- - - -
+
+ + + +

'.get_lang('ServerRequirements').'

'; echo '
'.get_lang('ServerRequirementsInfo').'
'; echo '
'; - echo ' + echo '
- +
'.get_lang('PHPVersion').'>= '.REQUIRED_PHP_VERSION.''.get_lang('PHPVersion').' >= '.REQUIRED_PHP_VERSION.' '; if (phpversion() < REQUIRED_PHP_VERSION) { echo ''.get_lang('PHPVersionError').''; @@ -1132,7 +1129,7 @@ function display_requirements($installType, $badUpdatePath, $updatePath = '', $u echo '

'.get_lang('RecommendedSettings').'

'; echo '
'.get_lang('RecommendedSettingsInfo').'
'; echo '
'; - echo ' + echo '
@@ -1140,58 +1137,63 @@ function display_requirements($installType, $badUpdatePath, $updatePath = '', $u - + - + - + - + - + - + - + - + - + - - + + - - + + + + + + +
'.get_lang('Setting').' '.get_lang('Recommended').'
Safe Mode '.check_php_setting('safe_mode','OFF').'
Display Errors '.check_php_setting('display_errors','OFF').'
File Uploads '.check_php_setting('file_uploads','ON').'
Magic Quotes GPC '.check_php_setting('magic_quotes_gpc','OFF').'
Magic Quotes Runtime '.check_php_setting('magic_quotes_runtime','OFF').'
Register Globals '.check_php_setting('register_globals','OFF').'
Session auto start '.check_php_setting('session.auto_start','OFF').'
Short Open Tag '.check_php_setting('short_open_tag','OFF').'
Cookie HTTP Only '.check_php_setting('session.cookie_httponly','ON').'
Maximum upload file size'.ini_get('upload_max_filesize').''.compare_setting_values(ini_get('upload_max_filesize'), REQUIRED_MIN_UPLOAD_MAX_FILESIZE).'
Maximum post size'.ini_get('post_max_size').''.compare_setting_values(ini_get('post_max_size'), REQUIRED_MIN_POST_MAX_SIZE).'
Memory Limit'.compare_setting_values(ini_get('memory_limit'), REQUIRED_MIN_MEMORY_LIMIT).'
'; echo '
'; @@ -1247,7 +1249,7 @@ function display_requirements($installType, $badUpdatePath, $updatePath = '', $u $course_test_was_created = $course_test_was_created == true ? Display::label(get_lang('Yes'), 'success') : Display::label(get_lang('No'), 'warning'); - echo ' + echo '
@@ -1267,23 +1269,19 @@ function display_requirements($installType, $badUpdatePath, $updatePath = '', $u - - + - - + - - + - - + @@ -2119,6 +2117,16 @@ function update_dir_and_files_permissions() { unset($_SESSION['permissions_for_new_directories']); unset($_SESSION['permissions_for_new_files']); +} + +function compare_setting_values($current_value, $wanted_value) { + $current_value_string = $current_value; + $current_value = (float)$current_value; + $wanted_value = (float)$wanted_value; - + if ($current_value >= $wanted_value) { + return Display::label($current_value_string, 'success'); + } else { + return Display::label($current_value_string, 'important'); + } } \ No newline at end of file
chamilo/main/inc/conf/ '.check_writable('inc/conf/').'
chamilo/courses/ '.check_writable('../courses/').'
'.get_lang('CourseTestWasCreated').' '.$course_test_was_created.'
'.get_lang('PermissionsForNewDirs').' '.$dir_perm.'
'.get_lang('PermissionsForNewFiles').' '.$file_perm.'
chamilo/home/ '.check_writable('../home/').'