diff options
author | Luke Shumaker <lukeshu@sbcglobal.net> | 2016-05-01 15:30:02 -0400 |
---|---|---|
committer | Luke Shumaker <lukeshu@sbcglobal.net> | 2016-05-01 15:30:02 -0400 |
commit | 1de335ad3f395ca6861085393ba366a9e3fb4a0d (patch) | |
tree | f1fdd326034e05177596851be6a7127615d81498 /includes/installer/WebInstaller.php | |
parent | 9c75fa8ff6d4d38ef552c00fef5969fb154765e8 (diff) | |
parent | f6d65e533c62f6deb21342d4901ece24497b433e (diff) |
Merge commit 'f6d65'
# Conflicts:
# skins/ArchLinux/ArchLinux.php
Diffstat (limited to 'includes/installer/WebInstaller.php')
-rw-r--r-- | includes/installer/WebInstaller.php | 27 |
1 files changed, 20 insertions, 7 deletions
diff --git a/includes/installer/WebInstaller.php b/includes/installer/WebInstaller.php index f3dba3a7..156606a6 100644 --- a/includes/installer/WebInstaller.php +++ b/includes/installer/WebInstaller.php @@ -1163,6 +1163,25 @@ class WebInstaller extends Installer { } elseif ( !empty( $_SERVER['SCRIPT_NAME'] ) ) { $path = $_SERVER['SCRIPT_NAME']; } + if ( $path === false ) { + $this->showError( 'config-no-uri' ); + return false; + } + + return parent::envCheckPath(); + } + + public function envPrepPath() { + parent::envPrepPath(); + // PHP_SELF isn't available sometimes, such as when PHP is CGI but + // cgi.fix_pathinfo is disabled. In that case, fall back to SCRIPT_NAME + // to get the path to the current script... hopefully it's reliable. SIGH + $path = false; + if ( !empty( $_SERVER['PHP_SELF'] ) ) { + $path = $_SERVER['PHP_SELF']; + } elseif ( !empty( $_SERVER['SCRIPT_NAME'] ) ) { + $path = $_SERVER['SCRIPT_NAME']; + } if ( $path !== false ) { $scriptPath = preg_replace( '{^(.*)/(mw-)?config.*$}', '$1', $path ); $scriptExtension = $this->getVar( 'wgScriptExtension' ); @@ -1175,14 +1194,8 @@ class WebInstaller extends Installer { $this->setVar( 'wgLocalStylePath', "$scriptPath/skins" ); $this->setVar( 'wgExtensionAssetsPath', "$scriptPath/extensions" ); $this->setVar( 'wgUploadPath', "$scriptPath/images" ); - - } else { - $this->showError( 'config-no-uri' ); - - return false; + $this->setVar( 'wgResourceBasePath', "$scriptPath" ); } - - return parent::envCheckPath(); } /** |