Project

General

Profile

« Previous | Next » 

Revision c06f0280

Added by Andreas Kohlbecker almost 8 years ago

sript for debugging multisite installation probelms

View differences:

debug/drupal_site_debug.php
1
<?php
2

  
3
/**
4
 * This debug script can be used to debug multisite installations.
5
 * It will print out diagnostic information which can help debugging
6
 * site setup and configuration problems.
7
 * 
8
 * This script should be run with the drush scr (drush php-script) command
9
 * which allows the inclusion of a PHP script file to be loaded after the 
10
 * Drush bootstrap of the Drupal site.
11
 * 
12
 * INSTALLATION:
13
 * 	copy or link this file into the drupal root folder
14
 * 
15
 * USAGE:
16
 * 	In the drupal root folder execute the following drush command
17
 *  
18
 *   	drush -l ${site-ulr} scr ~/drupal_site_debug.php
19
 */
20
$NL="\n";
21

  
22
global $base_url, $base_path, $base_root;
23

  
24
require_once('includes/database/database.inc');
25

  
26
print("=============== GENERAL ===============" . $NL);
27
print("DRUPAL_ROOT: " . DRUPAL_ROOT . $NL);
28
print("base_url: " . $base_url . $NL);
29
print("base_path: " . $base_path . $NL);
30
print("base_root: " . $base_root . $NL);
31

  
32
$conf = false;
33

  
34
/* =============================================
35
   this section  is +/- a copy of conf_path()
36
   additional lines are marked with '// DEBUG customization'
37
*/
38

  
39
$confdir = 'sites';
40
$sites = array();
41
if (file_exists(DRUPAL_ROOT . '/' . $confdir . '/sites.php')) {
42
  // This will overwrite $sites with the desired mappings.
43
  include(DRUPAL_ROOT . '/' . $confdir . '/sites.php');
44
}
45

  
46
print (">>> sites.php included". $NL);  // DEBUG customization
47
print_r($sites);                        // DEBUG customization
48
print (">>> finding site folder". $NL); // DEBUG customization
49

  
50
$uri = explode('/', $_SERVER['SCRIPT_NAME'] ? $_SERVER['SCRIPT_NAME'] : $_SERVER['SCRIPT_FILENAME']);
51
$server = explode('.', implode('.', array_reverse(explode(':', rtrim($_SERVER['HTTP_HOST'], '.')))));
52
for ($i = count($uri) - 1; $i > 0; $i--) {
53
  if($conf) break;                      // DEBUG customization
54
  for ($j = count($server); $j > 0; $j--) {
55
    $dir = implode('.', array_slice($server, -$j)) . implode('.', array_slice($uri, 0, $i));
56
    if (isset($sites[$dir]) && file_exists(DRUPAL_ROOT . '/' . $confdir . '/' . $sites[$dir])) {
57
      $dir = $sites[$dir];
58
      print $NL . ("\ttrying dir $confdir/$dir") . $NL; // DEBUG customization
59
    }
60

  
61
    $site_folder = DRUPAL_ROOT . '/' . $confdir . '/' . $dir;  // DEBUG customization
62
    print "\t" . $site_folder . (file_exists($site_folder) ? ': OK' : ' : is missing!') . $NL; // DEBUG customization
63
    print "\t" . $site_folder . '/settings.php' . (file_exists($site_folder . '/settings.php') ? ': OK' : ' : is missing!') . $NL; // DEBUG customization
64

  
65
    if (file_exists(DRUPAL_ROOT . '/' . $confdir . '/' . $dir . '/settings.php') || (!$require_settings && file_exists(DRUPAL_ROOT . '/' . $confdir . '/' . $dir))) {
66
      $conf = "$confdir/$dir";
67
      print $NL . "\t site folder found: " . $conf; // DEBUG customization
68
      break;                                        // DEBUG customization
69
    }
70
  }
71
}
72
/* ============================================= */
73

  
74
print (">>> resulting site folder"  . $NL); // DEBUG customization
75
print("conf_path: " . conf_path(false) . $NL);
76

  
77
// TODO this is not working!
78
print "Database connection:" .$NL;
79
print_r(Database::getConnectionInfo());
80

  
81

  
82
print("=============== Request ===============" . $NL); 
83
print("q=" . $_REQUEST['q'] . $NL);

Also available in: Unified diff