Merge "Allow 'uselang', 'useskin', 'debug' as query parameters in RedirectSpecialPages"
[lhc/web/wiklou.git] / includes / installer / WebInstaller.php
index f3dba3a..4930826 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
@@ -1165,24 +1184,17 @@ class WebInstaller extends Installer {
                }
                if ( $path !== false ) {
                        $scriptPath = preg_replace( '{^(.*)/(mw-)?config.*$}', '$1', $path );
-                       $scriptExtension = $this->getVar( 'wgScriptExtension' );
 
                        $this->setVar( 'wgScriptPath', "$scriptPath" );
                        // Update variables set from Setup.php that are derived from wgScriptPath
-                       $this->setVar( 'wgScript', "$scriptPath/index$scriptExtension" );
-                       $this->setVar( 'wgLoadScript', "$scriptPath/load$scriptExtension" );
+                       $this->setVar( 'wgScript', "$scriptPath/index.php" );
+                       $this->setVar( 'wgLoadScript', "$scriptPath/load.php" );
                        $this->setVar( 'wgStylePath', "$scriptPath/skins" );
                        $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();
        }
 
        /**