Index: modules/system/system.install
===================================================================
RCS file: /cvs/drupal/drupal/modules/system/system.install,v
retrieving revision 1.223
diff -u -p -r1.223 system.install
--- modules/system/system.install	4 Jan 2008 17:19:04 -0000	1.223
+++ modules/system/system.install	5 Jan 2008 18:16:23 -0000
@@ -68,19 +68,36 @@ function system_requirements($phase) {
     'title' => $t('PHP memory limit'),
     'value' => ini_get('memory_limit') ? ini_get('memory_limit') : '',
   );
+
+  // get_cfg_var('cfg_file_path') returns the location of PHP's configuration file (PHP.ini)
+  // or FALSE if no configuration file is being used or an error occurred. 
+  if (!get_cfg_var('cfg_file_path')) {
+    $configuration_file_hint = t('Contact your system administrator or hosting provider for assistance with increasing your PHP memory limit.');
+  }
+  else {
+    $configuration_file_hint = t('Increase the memory limit by editing the memory_limit parameter in the file %configuration-file and then restart your web server (or contact your system administrator or hosting provider for assistance).', array('%configuration-file' => get_cfg_var('cfg_file_path')));
+  }
+
   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']['description'] = $t('Consider increasing your PHP memory limit to %memory_minimum_limit to help prevent errors in the installation process.', array('%memory_minimum_limit' => DRUPAL_MINIMUM_PHP_MEMORY_LIMIT));
       $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']['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.', array('%memory_limit' => ini_get('memory_limit'), '%memory_minimum_limit' => DRUPAL_MINIMUM_PHP_MEMORY_LIMIT));
       $requirements['php_memory_limit']['severity'] = REQUIREMENT_WARNING;
     }
   }
 
+  // Add a hint to the warning regarding the location (if any) of the PHP.ini.
+  if (isset($requirements['php_memory_limit']['description'])) {
+    if (!empty($configuration_file_hint)) {
+      $requirements['php_memory_limit']['description'] .= ' '. $configuration_file_hint;
+    }
+    $requirements['php_memory_limit']['description'] .= ' '. t('See the <a href="@url">Drupal requirements</a> for more information.', array('@url' => 'http://drupal.org/requirements'));
+  }
   // Test DB version
   global $db_type;
   if (function_exists('db_status_report')) {
