| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 | <?php/** * @file * Simple database connection check that can be placed anywhere within a Drupal * installation. Does NOT need to be in the root where index.php resides! *//** * Locate the actual Drupal root. Based on drush_locate_root(). */function locate_root() {  $drupal_root = FALSE;  $start_path = isset($_SERVER['PWD']) ? $_SERVER['PWD'] : '';  if (empty($start_path)) {    $start_path = getcwd();  }  foreach (array(TRUE, FALSE) as $follow_symlinks) {    $path = $start_path;    if ($follow_symlinks && is_link($path)) {      $path = realpath($path);    }    // Check the start path.    if (valid_root($path)) {      $drupal_root = $path;      break;    }    else {      // Move up dir by dir and check each.      while ($path = shift_path_up($path)) {        if ($follow_symlinks && is_link($path)) {          $path = realpath($path);        }        if (valid_root($path)) {          $drupal_root = $path;          break 2;        }      }    }  }  return $drupal_root;}/** * Based on the DrupalBoot*::valid_root() from Drush. */function valid_root($path) {  if (!empty($path) && is_dir($path) && file_exists($path . '/index.php')) {    $candidate = 'includes/common.inc';    if (file_exists($path . '/' . $candidate) && file_exists($path . '/misc/drupal.js')) {      return TRUE;    }  }  return FALSE;}/** * Based on _drush_shift_path_up(). */function shift_path_up($path) {  if (empty($path)) {    return FALSE;  }  $path = explode('/', $path);  // Move one directory up.  array_pop($path);  return implode('/', $path);}/** * Do the actual database connection check. */define('DRUPAL_ROOT', locate_root());require_once DRUPAL_ROOT . '/includes/bootstrap.inc';drupal_bootstrap(DRUPAL_BOOTSTRAP_DATABASE);$result = db_query('SELECT COUNT(filename) FROM {system}')->fetchField();if ($result) {  $msg = 'OK';  http_response_code(200);}else {  http_response_code(500);  $msg = 'NOK';}exit($msg);
 |