From 3809b6a39b459afc629b4cedc614ec527b55806d Mon Sep 17 00:00:00 2001 From: Chad Horohoe Date: Sun, 24 May 2015 15:06:54 +0200 Subject: [PATCH] Installer: fix images in CSS Paths are tricky and installer code is old and ugly. Somebody should really clean this up. Prep the paths always, not just on the environment checks page. Co-Authored-By: Timo Tijhof Bug: T100145 Change-Id: I4e55c59c2bed0dc94e6bc3a8c59709ec80822235 --- includes/installer/WebInstaller.php | 27 ++++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/includes/installer/WebInstaller.php b/includes/installer/WebInstaller.php index f3dba3a72d..156606a6d6 100644 --- a/includes/installer/WebInstaller.php +++ b/includes/installer/WebInstaller.php @@ -1154,6 +1154,25 @@ class WebInstaller extends Installer { * @return bool */ public function envCheckPath() { + // 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 ) { + $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 @@ -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(); } /** -- 2.20.1