Add bug and comment for r35609: * (bug 13434) Show a warning when hash identical...
[lhc/web/wiklou.git] / includes / WebStart.php
index 8a112d0..2154eba 100644 (file)
@@ -1,7 +1,7 @@
 <?php
 
-# This does the initial setup for a web request. It does some security checks, 
-# starts the profiler and loads the configuration, and optionally loads 
+# This does the initial setup for a web request. It does some security checks,
+# starts the profiler and loads the configuration, and optionally loads
 # Setup.php depending on whether MW_NO_SETUP is defined.
 
 # Test for PHP bug which breaks PHP 5.0.x on 64-bit...
@@ -65,38 +65,46 @@ unset( $IP );
 # its purpose.
 define( 'MEDIAWIKI', true );
 
+# Full path to working directory.
+# Makes it possible to for example to have effective exclude path in apc.
+# Also doesn't break installations using symlinked includes, like
+# dirname( __FILE__ ) would do.
+$preIP = realpath( '.' );
+
 # Start profiler
-require_once( './StartProfiler.php' );
+require_once( "$preIP/StartProfiler.php" );
 wfProfileIn( 'WebStart.php-conf' );
 
 # Load up some global defines.
-require_once( './includes/Defines.php' );
+require_once( "$preIP/includes/Defines.php" );
 
 # LocalSettings.php is the per site customization file. If it does not exit
 # the wiki installer need to be launched or the generated file moved from
 # ./config/ to ./
-if( !file_exists( './LocalSettings.php' ) ) {
-       $IP = '.';
-       require_once( './includes/DefaultSettings.php' ); # used for printing the version
-       require_once( './includes/templates/NoLocalSettings.php' );
+if( !file_exists( "$preIP/LocalSettings.php" ) ) {
+       # DefaultSettings assumes $IP is defined, like it usually is when included
+       # in LocalSettings. But in this case we need to provide the default one.
+       $IP = $preIP;
+       require_once( "$preIP/includes/DefaultSettings.php" ); # used for printing the version
+       require_once( "$preIP/includes/templates/NoLocalSettings.php" );
        die();
 }
 
-# Include this site setttings
-require_once( './LocalSettings.php' );
+# Include site settings. Most importantly, $IP should be available after this.
+require_once( "$preIP/LocalSettings.php" );
 wfProfileOut( 'WebStart.php-conf' );
-wfProfileIn( 'WebStart.php-ob_start' );
 
+wfProfileIn( 'WebStart.php-ob_start' );
 # Initialise output buffering
 if ( ob_get_level() ) {
        # Someone's been mixing configuration data with code!
        # How annoying.
 } elseif ( !defined( 'MW_NO_OUTPUT_BUFFER' ) ) {
-       require_once( './includes/OutputHandler.php' );
+       require_once( "$IP/includes/OutputHandler.php" );
        ob_start( 'wfOutputHandler' );
 }
+wfProfileOut( 'WebStart.php-ob_start' );
 
 if ( !defined( 'MW_NO_SETUP' ) ) {
-       require_once( './includes/Setup.php' );
+       require_once( "$IP/includes/Setup.php" );
 }
-?>