Adding memory limit in the settings see #607

skala
Julio Montoya 14 years ago
parent 593c16c633
commit 1e75e1a322
  1. 35
      main/inc/lib/diagnoser.lib.php
  2. 4
      main/inc/lib/main_api.lib.php
  3. 4
      main/install/index.php
  4. 82
      main/install/install.lib.php

@ -141,16 +141,6 @@ class Diagnoser
$status = $setting == $req_setting ? self :: STATUS_OK : self :: STATUS_WARNING; $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')); $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'); $setting = ini_get('default_charset');
if ($setting == '') if ($setting == '')
$setting = null; $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')); $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'); $setting = ini_get('memory_limit');
$req_setting = '10M - 100M - ...'; $req_setting = '>= '.REQUIRED_MIN_MEMORY_LIMIT.'M';
if ($setting < 10) $status = self :: STATUS_ERROR;
$status = self :: STATUS_ERROR; if ((float)$setting >= REQUIRED_MIN_MEMORY_LIMIT)
if ($setting >= 10 && $setting < 100)
$status = self :: STATUS_WARNING;
if ($setting >= 100)
$status = self :: STATUS_OK; $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')); $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'); $setting = ini_get('post_max_size');
$req_setting = '10M - 100M - ...'; $req_setting = '>= '.REQUIRED_MIN_POST_MAX_SIZE.'M';
if ($setting < 10) $status = self :: STATUS_ERROR;
$status = self :: STATUS_ERROR; if ((float)$setting >= REQUIRED_MIN_POST_MAX_SIZE)
if ($setting >= 10 && $setting < 100)
$status = self :: STATUS_WARNING;
if ($setting >= 100)
$status = self :: STATUS_OK; $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')); $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'); $setting = ini_get('variables_order');
$req_setting = 'GPCS'; $req_setting = 'GPCS';

@ -16,6 +16,10 @@
// PHP version requirement. // PHP version requirement.
define('REQUIRED_PHP_VERSION', '5.3'); 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; use \ChamiloSession as Session;

@ -129,12 +129,12 @@ require_once __DIR__.'/version.php';
// A protection measure for already installed systems. // 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. // The system has already been installed, so block re-installation.
$global_error_code = 6; $global_error_code = 6;
require '../inc/global_error_message.inc.php'; require '../inc/global_error_message.inc.php';
die(); die();
} }*/
/* STEP 1 : INITIALIZES FORM VARIABLES IF IT IS THE FIRST VISIT */ /* STEP 1 : INITIALIZES FORM VARIABLES IF IT IS THE FIRST VISIT */

@ -89,8 +89,7 @@ function check_php_setting($php_setting, $recommended_value, $return_success = f
if ($current_php_value == $recommended_value) { if ($current_php_value == $recommended_value) {
return Display::label($current_php_value.' '.$return_success, 'success'); return Display::label($current_php_value.' '.$return_success, 'success');
} else { } else {
return Display::label($current_php_value.' '.$return_success, 'important'); return Display::label($current_php_value.' '.$return_success, 'important');
//return '<strong><font color="red">'.$current_php_value.' '.$return_failure.'</font></strong>';
} }
} }
@ -225,11 +224,9 @@ function check_writable($folder, $suggestion = false) {
return Display::label(get_lang('Writable'), 'success'); return Display::label(get_lang('Writable'), 'success');
} else { } else {
if ($suggestion) { if ($suggestion) {
return Display::label(get_lang('NotWritable'), 'info'); return Display::label(get_lang('NotWritable'), 'info');
//return '<strong><font color="#ff9900">'.get_lang('NotWritable').'</font></strong>';
} else { } else {
return Display::label(get_lang('NotWritable'), 'important'); return Display::label(get_lang('NotWritable'), 'important');
//return '<strong><font color="red">'.get_lang('NotWritable').'</font></strong>';
} }
} }
} }
@ -1020,11 +1017,11 @@ function display_language_selection() { ?>
<div class="RequirementHeading"> <div class="RequirementHeading">
<h2><?php echo display_step_sequence(); ?><?php echo get_lang('InstallationLanguage'); ?></h2> <h2><?php echo display_step_sequence(); ?><?php echo get_lang('InstallationLanguage'); ?></h2>
<p><?php echo get_lang('PleaseSelectInstallationProcessLanguage'); ?>:</p> <p><?php echo get_lang('PleaseSelectInstallationProcessLanguage'); ?>:</p>
<form id="lang_form" method="post" action="<?php echo api_get_self(); ?>"> <form id="lang_form" method="post" action="<?php echo api_get_self(); ?>">
<?php display_language_selection_box('language_list', api_get_interface_language()); ?> <?php display_language_selection_box('language_list', api_get_interface_language()); ?>
<button type="submit" name="step1" class="btn next" value="<?php echo get_lang('Next'); ?>"><?php echo get_lang('Next'); ?></button> <button type="submit" name="step1" class="btn next" value="<?php echo get_lang('Next'); ?>"><?php echo get_lang('Next'); ?></button>
<input type="hidden" name="is_executable" id="is_executable" value="-" /> <input type="hidden" name="is_executable" id="is_executable" value="-" />
</form> </form>
</div> </div>
<?php <?php
} }
@ -1057,9 +1054,9 @@ function display_requirements($installType, $badUpdatePath, $updatePath = '', $u
echo '<div class="RequirementHeading"><h2>'.get_lang('ServerRequirements').'</h2>'; echo '<div class="RequirementHeading"><h2>'.get_lang('ServerRequirements').'</h2>';
echo '<div class="RequirementText">'.get_lang('ServerRequirementsInfo').'</div>'; echo '<div class="RequirementText">'.get_lang('ServerRequirementsInfo').'</div>';
echo '<div class="RequirementContent">'; echo '<div class="RequirementContent">';
echo '<table class="requirements"> echo '<table class="table">
<tr> <tr>
<td class="requirements-item">'.get_lang('PHPVersion').'>= '.REQUIRED_PHP_VERSION.'</td> <td class="requirements-item">'.get_lang('PHPVersion').' >= '.REQUIRED_PHP_VERSION.'</td>
<td class="requirements-value">'; <td class="requirements-value">';
if (phpversion() < REQUIRED_PHP_VERSION) { if (phpversion() < REQUIRED_PHP_VERSION) {
echo '<strong><font color="red">'.get_lang('PHPVersionError').'</font></strong>'; echo '<strong><font color="red">'.get_lang('PHPVersionError').'</font></strong>';
@ -1132,7 +1129,7 @@ function display_requirements($installType, $badUpdatePath, $updatePath = '', $u
echo '<div class="RequirementHeading"><h2>'.get_lang('RecommendedSettings').'</h2>'; echo '<div class="RequirementHeading"><h2>'.get_lang('RecommendedSettings').'</h2>';
echo '<div class="RequirementText">'.get_lang('RecommendedSettingsInfo').'</div>'; echo '<div class="RequirementText">'.get_lang('RecommendedSettingsInfo').'</div>';
echo '<div class="RequirementContent">'; echo '<div class="RequirementContent">';
echo '<table class="requirements"> echo '<table class="table">
<tr> <tr>
<th>'.get_lang('Setting').'</th> <th>'.get_lang('Setting').'</th>
<th>'.get_lang('Recommended').'</th> <th>'.get_lang('Recommended').'</th>
@ -1140,58 +1137,63 @@ function display_requirements($installType, $badUpdatePath, $updatePath = '', $u
</tr> </tr>
<tr> <tr>
<td class="requirements-item"><a href="http://php.net/manual/features.safe-mode.php">Safe Mode</a></td> <td class="requirements-item"><a href="http://php.net/manual/features.safe-mode.php">Safe Mode</a></td>
<td class="requirements-recommended">OFF</td> <td class="requirements-recommended">'.Display::label('OFF', 'success').'</td>
<td class="requirements-value">'.check_php_setting('safe_mode','OFF').'</td> <td class="requirements-value">'.check_php_setting('safe_mode','OFF').'</td>
</tr> </tr>
<tr> <tr>
<td class="requirements-item"><a href="http://php.net/manual/ref.errorfunc.php#ini.display-errors">Display Errors</a></td> <td class="requirements-item"><a href="http://php.net/manual/ref.errorfunc.php#ini.display-errors">Display Errors</a></td>
<td class="requirements-recommended">OFF</td> <td class="requirements-recommended">'.Display::label('OFF', 'success').'</td>
<td class="requirements-value">'.check_php_setting('display_errors','OFF').'</td> <td class="requirements-value">'.check_php_setting('display_errors','OFF').'</td>
</tr> </tr>
<tr> <tr>
<td class="requirements-item"><a href="http://php.net/manual/ini.core.php#ini.file-uploads">File Uploads</a></td> <td class="requirements-item"><a href="http://php.net/manual/ini.core.php#ini.file-uploads">File Uploads</a></td>
<td class="requirements-recommended">ON</td> <td class="requirements-recommended">'.Display::label('ON', 'success').'</td>
<td class="requirements-value">'.check_php_setting('file_uploads','ON').'</td> <td class="requirements-value">'.check_php_setting('file_uploads','ON').'</td>
</tr> </tr>
<tr> <tr>
<td class="requirements-item"><a href="http://php.net/manual/ref.info.php#ini.magic-quotes-gpc">Magic Quotes GPC</a></td> <td class="requirements-item"><a href="http://php.net/manual/ref.info.php#ini.magic-quotes-gpc">Magic Quotes GPC</a></td>
<td class="requirements-recommended">OFF</td> <td class="requirements-recommended">'.Display::label('OFF', 'success').'</td>
<td class="requirements-value">'.check_php_setting('magic_quotes_gpc','OFF').'</td> <td class="requirements-value">'.check_php_setting('magic_quotes_gpc','OFF').'</td>
</tr> </tr>
<tr> <tr>
<td class="requirements-item"><a href="http://php.net/manual/ref.info.php#ini.magic-quotes-runtime">Magic Quotes Runtime</a></td> <td class="requirements-item"><a href="http://php.net/manual/ref.info.php#ini.magic-quotes-runtime">Magic Quotes Runtime</a></td>
<td class="requirements-recommended">OFF</td> <td class="requirements-recommended">'.Display::label('OFF', 'success').'</td>
<td class="requirements-value">'.check_php_setting('magic_quotes_runtime','OFF').'</td> <td class="requirements-value">'.check_php_setting('magic_quotes_runtime','OFF').'</td>
</tr> </tr>
<tr> <tr>
<td class="requirements-item"><a href="http://php.net/manual/security.globals.php">Register Globals</a></td> <td class="requirements-item"><a href="http://php.net/manual/security.globals.php">Register Globals</a></td>
<td class="requirements-recommended">OFF</td> <td class="requirements-recommended">'.Display::label('OFF', 'success').'</td>
<td class="requirements-value">'.check_php_setting('register_globals','OFF').'</td> <td class="requirements-value">'.check_php_setting('register_globals','OFF').'</td>
</tr> </tr>
<tr> <tr>
<td class="requirements-item"><a href="http://php.net/manual/ref.session.php#ini.session.auto-start">Session auto start</a></td> <td class="requirements-item"><a href="http://php.net/manual/ref.session.php#ini.session.auto-start">Session auto start</a></td>
<td class="requirements-recommended">OFF</td> <td class="requirements-recommended">'.Display::label('OFF', 'success').'</td>
<td class="requirements-value">'.check_php_setting('session.auto_start','OFF').'</td> <td class="requirements-value">'.check_php_setting('session.auto_start','OFF').'</td>
</tr> </tr>
<tr> <tr>
<td class="requirements-item"><a href="http://php.net/manual/ini.core.php#ini.short-open-tag">Short Open Tag</a></td> <td class="requirements-item"><a href="http://php.net/manual/ini.core.php#ini.short-open-tag">Short Open Tag</a></td>
<td class="requirements-recommended">OFF</td> <td class="requirements-recommended">'.Display::label('OFF', 'success').'</td>
<td class="requirements-value">'.check_php_setting('short_open_tag','OFF').'</td> <td class="requirements-value">'.check_php_setting('short_open_tag','OFF').'</td>
</tr> </tr>
<tr> <tr>
<td class="requirements-item"><a href="http://www.php.net/manual/en/session.configuration.php#ini.session.cookie-httponly">Cookie HTTP Only</a></td> <td class="requirements-item"><a href="http://www.php.net/manual/en/session.configuration.php#ini.session.cookie-httponly">Cookie HTTP Only</a></td>
<td class="requirements-recommended">ON</td> <td class="requirements-recommended">'.Display::label('ON', 'success').'</td>
<td class="requirements-value">'.check_php_setting('session.cookie_httponly','ON').'</td> <td class="requirements-value">'.check_php_setting('session.cookie_httponly','ON').'</td>
</tr> </tr>
<tr> <tr>
<td class="requirements-item"><a href="http://php.net/manual/ini.core.php#ini.upload-max-filesize">Maximum upload file size</a></td> <td class="requirements-item"><a href="http://php.net/manual/ini.core.php#ini.upload-max-filesize">Maximum upload file size</a></td>
<td class="requirements-recommended">10M-100M</td> <td class="requirements-recommended">'.Display::label('>= '.REQUIRED_MIN_UPLOAD_MAX_FILESIZE.'M', 'success').'</td>
<td class="requirements-value">'.ini_get('upload_max_filesize').'</td> <td class="requirements-value">'.compare_setting_values(ini_get('upload_max_filesize'), REQUIRED_MIN_UPLOAD_MAX_FILESIZE).'</td>
</tr> </tr>
<tr> <tr>
<td class="requirements-item"><a href="http://php.net/manual/ini.core.php#ini.post-max-size">Maximum post size</a></td> <td class="requirements-item"><a href="http://php.net/manual/ini.core.php#ini.post-max-size">Maximum post size</a></td>
<td class="requirements-recommended">10M-100M</td> <td class="requirements-recommended">'.Display::label('>= '.REQUIRED_MIN_POST_MAX_SIZE.'M', 'success').'</td>
<td class="requirements-value">'.ini_get('post_max_size').'</td> <td class="requirements-value">'.compare_setting_values(ini_get('post_max_size'), REQUIRED_MIN_POST_MAX_SIZE).'</td>
</tr>
<tr>
<td class="requirements-item"><a href="http://www.php.net/manual/en/ini.core.php#ini.memory-limit">Memory Limit</a></td>
<td class="requirements-recommended">'.Display::label('>= '.REQUIRED_MIN_MEMORY_LIMIT.'M', 'success').'</td>
<td class="requirements-value">'.compare_setting_values(ini_get('memory_limit'), REQUIRED_MIN_MEMORY_LIMIT).'</td>
</tr> </tr>
</table>'; </table>';
echo ' </div>'; echo ' </div>';
@ -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'); $course_test_was_created = $course_test_was_created == true ? Display::label(get_lang('Yes'), 'success') : Display::label(get_lang('No'), 'warning');
echo '<table class="requirements"> echo '<table class="table">
<tr> <tr>
<td class="requirements-item">chamilo/main/inc/conf/</td> <td class="requirements-item">chamilo/main/inc/conf/</td>
<td class="requirements-value">'.check_writable('inc/conf/').'</td> <td class="requirements-value">'.check_writable('inc/conf/').'</td>
@ -1267,23 +1269,19 @@ function display_requirements($installType, $badUpdatePath, $updatePath = '', $u
<tr> <tr>
<td class="requirements-item">chamilo/courses/</td> <td class="requirements-item">chamilo/courses/</td>
<td class="requirements-value">'.check_writable('../courses/').' </td> <td class="requirements-value">'.check_writable('../courses/').' </td>
</tr> </tr>
<tr> <tr>
<td class="requirements-item">'.get_lang('CourseTestWasCreated').'</td> <td class="requirements-item">'.get_lang('CourseTestWasCreated').'</td>
<td class="requirements-value">'.$course_test_was_created.' </td> <td class="requirements-value">'.$course_test_was_created.' </td>
</tr> </tr>
<tr> <tr>
<td class="requirements-item">'.get_lang('PermissionsForNewDirs').'</td> <td class="requirements-item">'.get_lang('PermissionsForNewDirs').'</td>
<td class="requirements-value">'.$dir_perm.' </td> <td class="requirements-value">'.$dir_perm.' </td>
</tr> </tr>
<tr> <tr>
<td class="requirements-item">'.get_lang('PermissionsForNewFiles').'</td> <td class="requirements-item">'.get_lang('PermissionsForNewFiles').'</td>
<td class="requirements-value">'.$file_perm.' </td> <td class="requirements-value">'.$file_perm.' </td>
</tr> </tr>
<tr> <tr>
<td class="requirements-item">chamilo/home/</td> <td class="requirements-item">chamilo/home/</td>
<td class="requirements-value">'.check_writable('../home/').'</td> <td class="requirements-value">'.check_writable('../home/').'</td>
@ -2119,6 +2117,16 @@ function update_dir_and_files_permissions() {
unset($_SESSION['permissions_for_new_directories']); unset($_SESSION['permissions_for_new_directories']);
unset($_SESSION['permissions_for_new_files']); 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');
}
} }
Loading…
Cancel
Save