Installer: fix images in CSS
authorChad Horohoe <chadh@wikimedia.org>
Sun, 24 May 2015 13:06:54 +0000 (15:06 +0200)
committerChad <chadh@wikimedia.org>
Sun, 24 May 2015 13:28:54 +0000 (13:28 +0000)
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 <krinklemail@gmail.com>
Bug: T100145
Change-Id: I4e55c59c2bed0dc94e6bc3a8c59709ec80822235

includes/installer/WebInstaller.php

index f3dba3a..156606a 100644 (file)
@@ -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();
        }
 
        /**