<?php
/**
- * Include most things that's need to customize the site
+ * Include most things that's need to customize the site.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
*
* @file
*/
if ( !empty($wgActionPaths) && !isset($wgActionPaths['view']) ) {
# 'view' is assumed the default action path everywhere in the code
- # but is rarely filled in $wgActionPaths
+ # but is rarely filled in $wgActionPaths
$wgActionPaths['view'] = $wgArticlePath ;
}
$wgNamespaceAliases['Image'] = NS_FILE;
$wgNamespaceAliases['Image_talk'] = NS_FILE_TALK;
+/**
+ * Initialise $wgLockManagers to include basic FS version
+ */
+$wgLockManagers[] = array(
+ 'name' => 'fsLockManager',
+ 'class' => 'FSLockManager',
+ 'lockDirectory' => "{$wgUploadDirectory}/lockdir",
+);
+$wgLockManagers[] = array(
+ 'name' => 'nullLockManager',
+ 'class' => 'NullLockManager',
+);
+
/**
* Initialise $wgLocalFileRepo from backwards-compatible settings
*/
);
} else {
$wgForeignFileRepos[] = array(
- 'class' => 'FSRepo',
+ 'class' => 'FileRepo',
'name' => 'shared',
'directory' => $wgSharedUploadDirectory,
'url' => $wgSharedUploadPath,
}
if ( $wgUseInstantCommons ) {
$wgForeignFileRepos[] = array(
- 'class' => 'ForeignAPIRepo',
- 'name' => 'wikimediacommons',
- 'apibase' => 'http://commons.wikimedia.org/w/api.php',
- 'hashLevels' => 2,
- 'fetchDescription' => true,
- 'descriptionCacheExpiry' => 43200,
- 'apiThumbCacheExpiry' => 86400,
+ 'class' => 'ForeignAPIRepo',
+ 'name' => 'wikimediacommons',
+ 'apibase' => WebRequest::detectProtocol() === 'https' ?
+ 'https://commons.wikimedia.org/w/api.php' :
+ 'http://commons.wikimedia.org/w/api.php',
+ 'hashLevels' => 2,
+ 'fetchDescription' => true,
+ 'descriptionCacheExpiry' => 43200,
+ 'apiThumbCacheExpiry' => 86400,
);
}
+/*
+ * Add on default file backend config for file repos.
+ * FileBackendGroup will handle initializing the backends.
+ */
+if ( !isset( $wgLocalFileRepo['backend'] ) ) {
+ $wgLocalFileRepo['backend'] = $wgLocalFileRepo['name'] . '-backend';
+}
+foreach ( $wgForeignFileRepos as &$repo ) {
+ if ( !isset( $repo['directory'] ) && $repo['class'] === 'ForeignAPIRepo' ) {
+ $repo['directory'] = $wgUploadDirectory; // b/c
+ }
+ if ( !isset( $repo['backend'] ) ) {
+ $repo['backend'] = $repo['name'] . '-backend';
+ }
+}
+unset( $repo ); // no global pollution; destroy reference
if ( is_null( $wgEnableAutoRotation ) ) {
// Only enable auto-rotation when the bitmap handler can rotate
# Easy to forget to falsify $wgShowIPinHeader for static caches.
# If file cache or squid cache is on, just disable this (DWIMD).
+# Do the same for $wgDebugToolbar.
if ( $wgUseFileCache || $wgUseSquid ) {
$wgShowIPinHeader = false;
+ $wgDebugToolbar = false;
}
# $wgAllowRealName and $wgAllowUserSkin were removed in 1.16
$wgCookieSecure = ( substr( $wgServer, 0, 6 ) === 'https:' );
}
+// Disable MWDebug for command line mode, this prevents MWDebug from eating up
+// all the memory from logging SQL queries on maintenance scripts
+global $wgCommandLineMode;
+if ( $wgDebugToolbar && !$wgCommandLineMode ) {
+ MWDebug::init();
+}
+
if ( !defined( 'MW_COMPILED' ) ) {
if ( !MWInit::classExists( 'AutoLoader' ) ) {
require_once( "$IP/includes/AutoLoader.php" );
require_once( "$IP/includes/normal/UtfNormalUtil.php" );
require_once( "$IP/includes/GlobalFunctions.php" );
require_once( "$IP/includes/ProxyTools.php" );
- require_once( "$IP/includes/ImageFunctions.php" );
require_once( "$IP/includes/normal/UtfNormalDefines.php" );
wfProfileOut( $fname . '-includes' );
}
$wgCanonicalServer = wfExpandUrl( $wgServer, PROTO_HTTP );
}
+// Initialize $wgHTCPMulticastRouting from backwards-compatible settings
+if ( !$wgHTCPMulticastRouting && $wgHTCPMulticastAddress ) {
+ $wgHTCPMulticastRouting = array(
+ '' => array(
+ 'host' => $wgHTCPMulticastAddress,
+ 'port' => $wgHTCPPort,
+ )
+ );
+}
+
wfProfileIn( $fname . '-misc1' );
# Raise the memory limit if it's too low
}
# Useful debug output
-global $wgCommandLineMode;
if ( $wgCommandLineMode ) {
$wgRequest = new FauxRequest( array() );
# Can't stub this one, it sets up $_GET and $_REQUEST in its constructor
$wgRequest = new WebRequest;
- $debug = "Start request\n\n{$_SERVER['REQUEST_METHOD']} {$wgRequest->getRequestURL()}";
+ $debug = "\n\nStart request {$_SERVER['REQUEST_METHOD']} {$wgRequest->getRequestURL()}\n";
if ( $wgDebugPrintHttpHeaders ) {
- $debug .= "\nHTTP HEADERS:\n";
+ $debug .= "HTTP HEADERS:\n";
foreach ( $wgRequest->getAllHeaders() as $name => $value ) {
$debug .= "$name: $value\n";
}
}
- wfDebug( "$debug\n" );
+ wfDebug( $debug );
}
wfProfileOut( $fname . '-misc1' );
$wgMemc = wfGetMainCache();
$messageMemc = wfGetMessageCacheStorage();
$parserMemc = wfGetParserCacheStorage();
+$wgLangConvMemc = wfGetLangConverterCacheStorage();
wfDebug( 'CACHES: ' . get_class( $wgMemc ) . '[main] ' .
get_class( $messageMemc ) . '[message] ' .
if ( !defined( 'MW_NO_SESSION' ) && !$wgCommandLineMode ) {
if ( $wgRequest->checkSessionCookie() || isset( $_COOKIE[$wgCookiePrefix . 'Token'] ) ) {
- wfIncrStats( 'request_with_session' );
wfSetupSession();
$wgSessionStarted = true;
} else {
- wfIncrStats( 'request_without_session' );
$wgSessionStarted = false;
}
}
$wgUser = RequestContext::getMain()->getUser(); # BackCompat
/**
- * @var Language
+ * @var $wgLang Language
*/
$wgLang = new StubUserLang;
$wgOut = RequestContext::getMain()->getOutput(); # BackCompat
/**
- * @var Parser
+ * @var $wgParser Parser
*/
$wgParser = new StubObject( 'wgParser', $wgParserConf['class'], array( $wgParserConf ) );
$wgDeferredUpdateList = array();
-// We need to check for safe_mode, because mail() will throw an E_NOTICE
-// on additional parameters
-if( !is_null($wgAdditionalMailParams) && wfIniGetBool('safe_mode') ) {
- $wgAdditionalMailParams = null;
-}
-
wfProfileOut( $fname . '-globals' );
wfProfileIn( $fname . '-extensions' );