From a2d0800d6bce9a9f69df0e63af39ba0e4b80005a Mon Sep 17 00:00:00 2001 From: =?utf8?q?Niklas=20Laxstr=C3=B6m?= Date: Fri, 16 May 2008 17:53:29 +0000 Subject: [PATCH] * Full path for script includes, this time should work with installations using symlinks * Some documentation --- includes/WebStart.php | 31 +++++++++++++++++++------------ 1 file changed, 19 insertions(+), 12 deletions(-) diff --git a/includes/WebStart.php b/includes/WebStart.php index 189c0161d1..2154eba07c 100644 --- a/includes/WebStart.php +++ b/includes/WebStart.php @@ -65,39 +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" ); } -- 2.20.1