summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGábor Hojtsy2008-01-04 17:19:04 (GMT)
committerGábor Hojtsy2008-01-04 17:19:04 (GMT)
commitb5e64f5a6ed1c7160a6104097185cc486db3aa95 (patch)
tree0b706cb1408b7eb26720ff9ffbb34436a8f135da
parentd5916e806102a43ec4547b78b5da0f828806bfeb (diff)
#197720 by nedjo, scor, keith.smith, catch: inform installing users about PHP memory requirements of Drupal 6
-rw-r--r--includes/theme.maintenance.inc7
-rw-r--r--install.php12
-rw-r--r--modules/system/system.install18
-rw-r--r--modules/system/system.module5
4 files changed, 42 insertions, 0 deletions
diff --git a/includes/theme.maintenance.inc b/includes/theme.maintenance.inc
index 94d30cf..753b4a9 100644
--- a/includes/theme.maintenance.inc
+++ b/includes/theme.maintenance.inc
@@ -124,6 +124,13 @@ function theme_install_page($content) {
$variables['messages'] .= theme('status_messages', 'error');
$variables['content'] .= '<p>'. st('Please check the error messages and <a href="!url">try again</a>.', array('!url' => request_uri())) .'</p>';
}
+
+ // Special handling of warning messages
+ if (isset($messages['warning'])) {
+ $title = count($messages['warning']) > 1 ? st('The following installation warnings should be carefully reviewed.') : st('The following installation warning should be carefully reviewed.');
+ $variables['messages'] .= '<h4>'. $title .':</h4>';
+ $variables['messages'] .= theme('status_messages', 'warning');
+ }
// Special handling of status messages
if (isset($messages['status'])) {
diff --git a/install.php b/install.php
index 70087c8..4264931 100644
--- a/install.php
+++ b/install.php
@@ -901,6 +901,18 @@ function install_check_requirements($profile, $verify) {
}
}
}
+ if ($severity == REQUIREMENT_WARNING) {
+
+ foreach ($requirements as $requirement) {
+ if (isset($requirement['severity']) && $requirement['severity'] == REQUIREMENT_WARNING) {
+ $message = $requirement['description'];
+ if (isset($requirement['value']) && $requirement['value']) {
+ $message .= ' ('. st('Currently using !item !version', array('!item' => $requirement['title'], '!version' => $requirement['value'])) .')';
+ }
+ drupal_set_message($message, 'warning');
+ }
+ }
+ }
}
/**
diff --git a/modules/system/system.install b/modules/system/system.install
index 9698217..8035c8d 100644
--- a/modules/system/system.install
+++ b/modules/system/system.install
@@ -62,6 +62,24 @@ function system_requirements($phase) {
$requirements['php']['description'] = $t('Your PHP installation is too old. Drupal requires at least PHP %version.', array('%version' => DRUPAL_MINIMUM_PHP));
$requirements['php']['severity'] = REQUIREMENT_ERROR;
}
+
+ // Test PHP memory_limit
+ $requirements['php_memory_limit'] = array(
+ 'title' => $t('PHP memory limit'),
+ 'value' => ini_get('memory_limit') ? ini_get('memory_limit') : '',
+ );
+ if ($phase == 'install') {
+ if (ini_get('memory_limit') && parse_size(ini_get('memory_limit')) < parse_size(DRUPAL_MINIMUM_PHP_MEMORY_LIMIT)) {
+ $requirements['php_memory_limit']['description'] = $t('Consider increasing your PHP memory limit to %memory_minimum_limit to help prevent errors in the installation process. If you have access to php.ini you can usually change this setting there. See the <a href="@url">Drupal requirements</a> for more information.', array('%memory_minimum_limit' => DRUPAL_MINIMUM_PHP_MEMORY_LIMIT, '@url' => 'http://drupal.org/requirements'));
+ $requirements['php_memory_limit']['severity'] = REQUIREMENT_WARNING;
+ }
+ }
+ elseif ($phase == 'runtime') {
+ if (ini_get('memory_limit') && parse_size(ini_get('memory_limit')) < parse_size(DRUPAL_MINIMUM_PHP_MEMORY_LIMIT)) {
+ $requirements['php_memory_limit']['description'] = $t('Depending on your configuration, Drupal can run with a %memory_limit PHP memory limit. However, a %memory_minimum_limit PHP memory limit or above is recommended, especially if your site uses additional custom or contributed modules. If you have access to php.ini you can usually change this setting there. See the <a href="@url">Drupal requirements</a> for more information.', array('%memory_limit' => ini_get('memory_limit'), '%memory_minimum_limit' => DRUPAL_MINIMUM_PHP_MEMORY_LIMIT, '@url' => 'http://drupal.org/requirements'));
+ $requirements['php_memory_limit']['severity'] = REQUIREMENT_WARNING;
+ }
+ }
// Test DB version
global $db_type;
diff --git a/modules/system/system.module b/modules/system/system.module
index 2431ef6..2b962c7 100644
--- a/modules/system/system.module
+++ b/modules/system/system.module
@@ -22,6 +22,11 @@ define('DRUPAL_CORE_COMPATIBILITY', '6.x');
define('DRUPAL_MINIMUM_PHP', '4.3.3');
/**
+ * Minimum recommended value of PHP memory_limit.
+ */
+define('DRUPAL_MINIMUM_PHP_MEMORY_LIMIT', '16M');
+
+/**
* Minimum supported version of MySQL, if it is used.
*/
define('DRUPAL_MINIMUM_MYSQL', '4.1.0');