summaryrefslogtreecommitdiff
path: root/includes/installer/WebInstaller.php
diff options
context:
space:
mode:
authorLuke Shumaker <lukeshu@sbcglobal.net>2016-05-01 15:30:02 -0400
committerLuke Shumaker <lukeshu@sbcglobal.net>2016-05-01 15:30:02 -0400
commit1de335ad3f395ca6861085393ba366a9e3fb4a0d (patch)
treef1fdd326034e05177596851be6a7127615d81498 /includes/installer/WebInstaller.php
parent9c75fa8ff6d4d38ef552c00fef5969fb154765e8 (diff)
parentf6d65e533c62f6deb21342d4901ece24497b433e (diff)
Merge commit 'f6d65'
# Conflicts: # skins/ArchLinux/ArchLinux.php
Diffstat (limited to 'includes/installer/WebInstaller.php')
-rw-r--r--includes/installer/WebInstaller.php27
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();
}
/**