install.php displayed instead of update.php
The script useful for tracking this down was:

&lt;?php
define('DRUPAL_ROOT', getcwd());
require_once DRUPAL_ROOT . '/includes/bootstrap.inc';
drupal_bootstrap(DRUPAL_BOOTSTRAP_CONFIGURATION);
print_r(getcwd()); echo '&lt;br&gt;';
print_r(conf_path()); echo '&lt;br&gt;';
$settings_path = DRUPAL_ROOT . '/' . conf_path() . '/settings.php';
echo "settings_path: $settings_path&lt;br&gt;";
$ret = realpath($settings_path);
echo "ret: $ret&lt;br&gt;";
?&gt;  


The clue was that $ret was empty. From the realpath documentation:


  Note:
  The running script must have executable permissions on all directories in the hierarchy, otherwise realpath() will return FALSE.


Changing

drwxr-x---  3 root  users  512 May 16 14:34 default


to have world executable permission worked around the problem.