Go to the documentation of this file.
34 if ( !defined(
'MEDIAWIKI' ) ) {
41 echo
"Error, Setup.php must be included from the file scope.\n";
51 if ( ini_get(
'mbstring.func_overload' ) ) {
52 die(
'MediaWiki does not support installations where mbstring.func_overload is non-zero.' );
57 if ( !defined(
'MW_ENTRY_POINT' ) ) {
63 define(
'MW_ENTRY_POINT',
'unknown' );
67 require_once
"$IP/includes/AutoLoader.php";
70 require_once
"$IP/includes/Defines.php";
73 require_once
"$IP/includes/DefaultSettings.php";
76 require_once
"$IP/includes/GlobalFunctions.php";
79 if ( is_readable(
"$IP/vendor/autoload.php" ) ) {
80 require_once
"$IP/vendor/autoload.php";
81 } elseif ( file_exists(
"$IP/vendor/autoload.php" ) ) {
82 die(
"$IP/vendor/autoload.php exists but is not readable" );
89 if ( !interface_exists(
'Psr\Log\LoggerInterface' ) ) {
91 'MediaWiki requires the <a href="https://github.com/php-fig/log">PSR-3 logging ' .
92 "library</a> to be present. This library is not embedded directly in MediaWiki's " .
93 "git repository and must be installed separately by the end user.\n\n" .
94 'Please see <a href="https://www.mediawiki.org/wiki/Download_from_Git' .
95 '#Fetch_external_libraries">mediawiki.org</a> for help on installing ' .
96 'the required components.'
99 trigger_error( $message, E_USER_ERROR );
112 mb_internal_encoding(
'UTF-8' );
118 if ( defined(
'MW_CONFIG_CALLBACK' ) ) {
121 if ( !defined(
'MW_CONFIG_FILE' ) ) {
122 define(
'MW_CONFIG_FILE',
"$IP/LocalSettings.php" );
124 require_once MW_CONFIG_FILE;
134 if ( defined(
'MW_SETUP_CALLBACK' ) ) {
135 call_user_func( MW_SETUP_CALLBACK );
148 putenv(
"LC_ALL=$wgShellLocale" );
185 $wgLogo =
"$wgResourceBasePath/resources/assets/wiki.png";
211 "{$wgStylePath}/common/images/",
212 "{$wgResourceBasePath}/resources/assets/licenses/",
234 "$wgResourceBasePath/resources/assets/poweredby_mediawiki_88x31.png";
236 "$wgResourceBasePath/resources/assets/poweredby_mediawiki_132x47.png 1.5x, " .
237 "$wgResourceBasePath/resources/assets/poweredby_mediawiki_176x62.png 2x";
261 'name' =>
'fsLockManager',
262 'class' => FSLockManager::class,
263 'lockDirectory' =>
"{$wgUploadDirectory}/lockdir",
266 'name' =>
'nullLockManager',
267 'class' => NullLockManager::class,
277 'imageHeight' => 120,
278 'captionLength' =>
true,
280 'showDimensions' =>
true,
281 'mode' =>
'traditional',
289 'class' => LocalRepo::class,
314 'class' => ForeignDBRepo::class,
334 'class' => FileRepo::class,
348 'class' => ForeignAPIRepo::class,
349 'name' =>
'wikimediacommons',
350 'apibase' =>
'https://commons.wikimedia.org/w/api.php',
351 'url' =>
'https://upload.wikimedia.org/wikipedia/commons',
352 'thumbUrl' =>
'https://upload.wikimedia.org/wikipedia/commons/thumb',
354 'transformVia404' =>
true,
355 'fetchDescription' =>
true,
356 'descriptionCacheExpiry' => 43200,
357 'apiThumbCacheExpiry' => 0,
361 if ( !isset( $repo[
'directory'] ) && $repo[
'class'] === ForeignAPIRepo::class ) {
364 if ( !isset( $repo[
'backend'] ) ) {
365 $repo[
'backend'] = $repo[
'name'] .
'-backend';
384 wfDeprecated(
'$wgSkipSkin – use $wgSkipSkins instead',
'1.23' );
393 wfDeprecated(
'$wgLocalInterwiki – use $wgLocalInterwikis instead',
'1.23' );
459 UploadBase::getMaxUploadSize(
'file' ),
460 UploadBase::getMaxPhpUploadSize(),
462 ini_get(
'post_max_size' ) ?: ini_get(
'hhvm.server.max_post_size' ),
464 ) ?: PHP_INT_MAX ) - 1024
491 $bcp47 = strtolower( $bcp47 );
504 if ( isset( $wgUseSquid ) ) {
509 wfDeprecated(
'$wgUseSquid enabled but $wgUseCdn disabled; enabling CDN functions',
'1.34' );
516 if ( isset( $wgSquidServers ) ) {
521 wfDeprecated(
'$wgSquidServers set, $wgCdnServers empty; using them',
'1.34' );
528 if ( isset( $wgSquidServersNoPurge ) ) {
534 wfDeprecated(
'$wgSquidServersNoPurge set, $wgCdnServersNoPurge empty; using them',
'1.34' );
541 if ( isset( $wgSquidMaxage ) ) {
546 wfDeprecated(
'$wgSquidMaxage set higher than $wgCdnMaxAge; using the higher value',
'1.34' );
557 Wikimedia\suppressWarnings();
559 Wikimedia\restoreWarnings();
592 '$wgProfileOnly set the log file in $wgDebugLogGroups[\'profileoutput\'] instead',
614 if ( defined(
'MW_NO_SESSION' ) ) {
625 MediaWikiServices::resetGlobalInstance(
new GlobalVarConfig(),
'quick' );
629 define(
'MW_SERVICE_BOOTSTRAP_COMPLETE', 1 );
636 '$wgServer must be set in LocalSettings.php. ' .
637 'See <a href="https://www.mediawiki.org/wiki/Manual:$wgServer">' .
638 'https://www.mediawiki.org/wiki/Manual:$wgServer</a>.'
643 foreach ( [
'wgArticlePath',
'wgVariantArticlePath' ] as $varName ) {
644 if ( $$varName && !preg_match(
'/^(https?:\/\/|\/)/', $$varName ) ) {
646 "If you use a relative URL for \$$varName, it must start " .
647 'with a slash (<code>/</code>).<br><br>See ' .
648 "<a href=\"https://www.mediawiki.org/wiki/Manual:\$$varName\">" .
649 "https://www.mediawiki.org/wiki/Manual:\$$varName</a>."
661 wfWarn(
'$wgServerName should be derived from $wgCanonicalServer, '
662 .
'not customized. Overwriting $wgServerName.' );
682 wfWarn(
'Secure login was enabled on a server that only supports '
683 .
'HTTP or HTTPS. Disabling secure login.' );
695 if ( !isset( $wgDisableCounters ) ) {
696 $wgDisableCounters =
true;
704 'class' => WANObjectCache::class,
711 MediaWikiServices::getInstance()->getDBLoadBalancer()->setTableAliases(
734 Wikimedia\suppressWarnings();
736 Wikimedia\restoreWarnings();
758 time() - ChronologyProtector::POSITION_COOKIE_TTL
760 MediaWikiServices::getInstance()->getDBLoadBalancerFactory()->setRequestInfo( [
762 'UserAgent' =>
$wgRequest->getHeader(
'User-Agent' ),
763 'ChronologyProtection' =>
$wgRequest->getHeader(
'MediaWiki-Chronology-Protection' ),
765 'ChronologyClientId' =>
$cpPosInfo[
'clientId']
766 ??
$wgRequest->getHeader(
'MediaWiki-Chronology-Client-Id' )
770 if (
$wgRequest->getCookie(
'UseDC',
'' ) ===
'master' ) {
774 MediaWikiServices::getInstance()->getMainWANObjectCache()->useInterimHoldOffCaching(
false );
779 if ( isset(
$self ) ) {
780 wfDebug(
"\n\nStart command line script $self\n" );
783 $debug =
"\n\nStart request {$wgRequest->getMethod()} {$wgRequest->getRequestURL()}\n";
785 foreach (
$wgRequest->getAllHeaders() as $name => $value ) {
786 $debug .=
"$name: $value\n";
801 $wgContLang = MediaWikiServices::getInstance()->getContentLanguage();
819 if ( !defined(
'MW_NO_SESSION_HANDLER' ) ) {
821 MediaWiki\Session\SessionManager::singleton()
828 }
catch (
MediaWiki\Session\SessionOverflowException $ex ) {
832 foreach ( $ex->getSessionInfos() as $info ) {
833 $list[] = $info->getProvider()->describe(
$wgContLang );
837 Message::newFromKey(
'sessionmanager-tie', $list )->inLanguage(
$wgContLang )->plain()
841 if ( $session->isPersistent() ) {
846 if (
MediaWiki\Session\PHPSessionHandler::isEnabled() &&
847 ( $session->isPersistent() || $session->shouldRememberUser() ) &&
848 session_id() !== $session->getId()
851 if ( session_id() !==
'' ) {
852 wfDebugLog(
'session',
'PHP session {old_id} was already started, changing to {new_id}',
'all', [
853 'old_id' => session_id(),
854 'new_id' => $session->getId(),
856 session_write_close();
858 session_id( $session->getId() );
866 if ( !defined(
'MW_NO_SESSION_HANDLER' ) ) {
868 MediaWiki\Session\SessionManager::singleton()
893 return MediaWikiServices::getInstance()->getParser();
906 call_user_func( $func );
916 MediaWiki\Auth\AuthManager::AUTOCREATE_SOURCE_SESSION,
920 'event' =>
'autocreate',
925 unset( $sessionUser );
$wgCanonicalNamespaceNames
Definitions of the NS_ constants are in Defines.php.
string $wgSharedUploadDirectory
Shortcut for the 'directory' setting of $wgForeignFileRepos.
$wgLocalInterwiki
The interwiki prefix of the current wiki, or false if it doesn't have one.
static getDeprecatedCodeMapping()
Returns a mapping of deprecated language codes that were used in previous versions of MediaWiki to up...
$wgUseCdn
Enable/disable CDN.
$wgUsersNotifiedOnAllChanges
$wgMaximalPasswordLength
Specifies the maximal length of a user password (T64685).
$wgDBserver
Database host name or IP address.
$wgFileBlacklist
Files with these extensions will never be allowed as uploads.
static getLocalClusterInstance()
Get the main cluster-local cache object.
$wgCdnServers
List of proxy servers to purge on changes; default port is 80.
$wgProfileOnly
Don't put non-profiling info into log file.
if( $wgLocalInterwiki) if( $wgSharedPrefix===false) if( $wgSharedSchema===false) if(! $wgCookiePrefix) $wgCookiePrefix
$wgSysopEmailBans
Allow sysops to ban users from accessing Emailuser.
$wgPageCreationLog
Maintain a log of page creations at Special:Log/create?
$wgInvalidateCacheOnLocalSettingsChange
Invalidate various caches when LocalSettings.php changes.
$wgRestPath
The URL path to the REST API Defaults to "{$wgScriptPath}/rest.php".
$wgGalleryOptions
Default parameters for the "<gallery>" tag.
$wgTmpDirectory
The local filesystem path to a temporary directory.
$wgRightsText
If either $wgRightsUrl or $wgRightsPage is specified then this variable gives the text for the link.
$wgDBname
Current wiki database name.
$wgDefaultUserOptions['rcdays']
Class to implement stub globals, which are globals that delay loading the their associated module cod...
$wgLogHeaders
Lists the message key string for descriptive text to be shown at the top of each log type.
$wgScript
The URL path to index.php.
$wgSharedDB
Shared database for multiple wikis.
$wgLocalFileRepo
File repository structures.
$wgWANObjectCaches
Advanced WAN object cache configuration.
bool string $wgSharedUploadDBname
Shortcut for the ForeignDBRepo 'dbName' setting in $wgForeignFileRepos.
wfMemoryLimit( $newLimit)
Raise PHP's memory limit (if needed).
$wgDBmwschema
Current wiki database schema name.
if( $wgScript===false) if( $wgLoadScript===false) if( $wgRestPath===false) if( $wgArticlePath===false) if( $wgResourceBasePath===null) if( $wgStylePath===false) if( $wgLocalStylePath===false) if( $wgExtensionAssetsPath===false) if( $wgLogo===false) if( $wgUploadPath===false) if( $wgUploadDirectory===false) if( $wgReadOnlyFile===false) if( $wgFileCacheDirectory===false) if( $wgDeletedDirectory===false) if( $wgGitInfoCacheDirectory===false && $wgCacheDirectory !==false) if( $wgRightsIcon) if(isset( $wgFooterIcons['copyright']['copyright']) && $wgFooterIcons['copyright']['copyright']===[]) if(isset( $wgFooterIcons['poweredby']) &&isset( $wgFooterIcons['poweredby']['mediawiki']) && $wgFooterIcons['poweredby']['mediawiki']['src']===null) $wgNamespaceProtection[NS_MEDIAWIKI]
Unconditional protection for NS_MEDIAWIKI since otherwise it's too easy for a sysadmin to set $wgName...
if(! $wgEmergencyContact) if(! $wgPasswordSender) if(! $wgNoReplyAddress) if( $wgSecureLogin &&substr( $wgServer, 0, 2) !=='//') $wgVirtualRestConfig['global']['domain']
$wgGenerateThumbnailOnParse
Allow thumbnail rendering on page view.
$wgExtensionAssetsPath
The URL path of the extensions directory.
static installHandler()
Install handlers with PHP.
static detectProtocol()
Detect the protocol from $_SERVER.
if(!defined( 'MEDIAWIKI')) $wgScopeTest
This file is not a valid entry point, perform no further processing unless MEDIAWIKI is defined.
$wgCacheDirectory
Directory for caching data in the local filesystem.
static isValidUserName( $name)
Is the input a valid username?
$wgCdnMaxAge
Cache TTL for the CDN sent as s-maxage (without ESI) or Surrogate-Control (with ESI).
string $wgSharedThumbnailScriptPath
Shortcut for the 'thumbScriptUrl' setting of $wgForeignFileRepos.
$wgLogo
The URL path of the wiki logo.
wfDebugLog( $logGroup, $text, $dest='all', array $context=[])
Send a line to a supplementary debug log file, if configured, or main debug log if not.
$wgMetaNamespace
Name of the project namespace.
Show an error that looks like an HTTP server error.
$wgDBpassword
Database user's password.
$wgDBprefix
Current wiki database table name prefix.
bool $wgFetchCommonsDescriptions
Shortcut for the 'fetchDescription' setting of $wgForeignFileRepos.
$wgStylePath
The URL path of the skins directory.
static array $canonicalNames
Definitions of the NS_ constants are in Defines.php.
$wgRepositoryBaseUrl
Shortcut for the 'descBaseUrl' setting of $wgForeignFileRepos.
if(isset( $wgSysopEmailBans) && $wgSysopEmailBans===false) if( $wgMetaNamespace===false) $wgMinUploadChunkSize
$wgUseInstantCommons
Use Wikimedia Commons as a foreign file repository.
$wgHashedUploadDirectory
Set this to false if you do not want MediaWiki to divide your images directory into many subdirectori...
wfParseUrl( $url)
parse_url() work-alike, but non-broken.
bool $wgHashedSharedUploadDirectory
Shortcut for the 'hashLevels' setting of $wgForeignFileRepos.
$wgNoReplyAddress
Reply-To address for e-mail notifications.
$wgEmergencyContact
Site admin email address.
wfDeprecated( $function, $version=false, $component=false, $callerOffset=2)
Throws a warning that $function is deprecated.
$wgFooterIcons
Abstract list of footer icons for skins in place of old copyrightico and poweredbyico code You can ad...
$wgMainCacheType
Main cache type.
if( $wgServer===false) foreach([ 'wgArticlePath', 'wgVariantArticlePath'] as $varName) if( $wgCanonicalServer===false) $serverParts
global $wgCommandLineMode
$wgDebugLogGroups
Map of string log group names to log destinations.
if(is_array( $wgExtraNamespaces)) if(count( $wgDummyLanguageCodes) !==0) $wgDummyLanguageCodes
$wgLoadScript
The URL path to load.php.
$wgLogTypes
The logging system has two levels: an event type, which describes the general category and can be vie...
$wgEnableEmail
Set to true to enable the e-mail basic features: Password reminders, etc.
Accesses configuration settings from $GLOBALS.
$wgSessionName
Override to customise the session name.
$wgCdnServersNoPurge
As with $wgCdnServers, except these servers aren't purged on page changes; use to set a list of trust...
$wgDebugLogFile
Filename for debug logging.
wfDebug( $text, $dest='all', array $context=[])
Sends a line to the debug log if enabled or, optionally, to a comment in output.
$wgCanonicalServer
Canonical URL of the server, to use in IRC feeds and notification e-mails.
$wgEnotifRevealEditorAddress
$wgMemoryLimit
The minimum amount of memory that MediaWiki "needs"; MediaWiki will try to raise PHP's memory limit i...
$wgLockManagers[]
Initialise $wgLockManagers to include basic FS version.
bool $wgUseSharedUploads
Shortcut for adding an entry to $wgForeignFileRepos.
foreach( $wgExtensionFunctions as $func) if(!defined( 'MW_NO_SESSION') &&! $wgCommandLineMode) if(! $wgCommandLineMode) $wgFullyInitialised
bool $wgPageLanguageUseDB
Enable page language feature Allows setting page language in database.
$wgLocalTZoffset
Set an offset from UTC in minutes to use for the default timezone setting for anonymous users and new...
$wgNamespaceAliases['Image']
The canonical names of namespaces 6 and 7 are, as of v1.14, "File" and "File_talk".
$wgLocalInterwikis
Array for multiple $wgLocalInterwiki values, in case there are several interwiki prefixes that point ...
$wgDeletedDirectory
What directory to place deleted uploads in.
bool $wgCacheSharedUploads
Shortcut for the ForeignDBRepo 'hasSharedCache' setting in $wgForeignFileRepos.
Stub object for the user language.
$wgServer
URL of the server.
$wgRCMaxAge
Recentchanges items are periodically purged; entries older than this many seconds will go.
$wgLanguageCode
Site language code.
$wgSitename
Name of the site.
$wgRightsIcon
Override for copyright metadata.
$wgExtensionFunctions
A list of callback functions which are called once MediaWiki is fully initialised.
$wgUploadBaseUrl
If set, this URL is added to the start of $wgUploadPath to form a complete upload URL.
$wgUploadDirectory
The filesystem path of the images directory.
$wgAllowHTMLEmail
For parts of the system that have been updated to provide HTML email content, send both text and HTML...
static getMain()
Get the RequestContext object associated with the main request.
$wgLogActionsHandlers
The same as above, but here values are names of classes, not messages.
wfIniGetBool( $setting)
Safety wrapper around ini_get() for boolean settings.
$wgResourceBasePath
The default 'remoteBasePath' value for instances of ResourceLoaderFileModule.
wfGetMessageCacheStorage()
Get the cache object used by the message cache.
$wgCacheEpoch
Set this to current time to invalidate all prior cached pages.
wfShorthandToInteger( $string='', $default=-1)
Converts shorthand byte notation to integer form.
$wgGitInfoCacheDirectory
Directory where GitInfo will look for pre-computed cache files.
wfTempDir()
Tries to get the system directory for temporary files.
$wgReadOnlyFile
If this lock file exists (size > 0), the wiki will be forced into read-only mode.
if( $wgSkipSkin) $wgSkipSkins[]
$wgThumbnailScriptPath
Give a path here to use thumb.php for thumbnail generation on client request, instead of generating t...
foreach(LanguageCode::getNonstandardLanguageCodeMapping() as $code=> $bcp47) $wgContLanguageCode
Exception class which takes an HTML error message, and does not produce a backtrace.
$wgLocaltimezone
Fake out the timezone that the server thinks it's in.
string $wgSharedUploadDBprefix
Shortcut for the ForeignDBRepo 'tablePrefix' setting in $wgForeignFileRepos.
$wgCookieSecure
Whether the "secure" flag should be set on the cookie.
$wgShellLocale
Locale for LC_ALL, to provide a known environment for locale-sensitive operations.
$wgLogNames
Lists the message key string for each log type.
$wgFileCacheDirectory
Directory where the cached page will be saved.
$wgUploadPath
The URL path for the images directory.
wfWarn( $msg, $callerOffset=1, $level=E_USER_NOTICE)
Send a warning either to the debug log or in a PHP error depending on $wgDevelopmentWarnings.
$wgGroupPermissions['sysop']['replacetext']
$wgDBuser
Database username.
$wgDBerrorLogTZ
Timezone to use in the error log.
$wgPasswordPolicy
Password policy for the wiki.
$wgDebugDumpSql
Write SQL queries to the debug log.
if(! $wgDBerrorLogTZ) $wgRequest
static schedulePingback()
Schedule a deferred callable that will check if a pingback should be sent and (if so) proceed to send...
$wgMinimalPasswordLength
Specifies the minimal length of a user password.
if( $wgServerName !==false) $wgServerName
$wgPasswordSender
Sender email address for e-mail notifications.
string $wgPHPSessionHandling
Whether to use PHP session handling ($_SESSION and session_*() functions)
$wgExtraLanguageCodes
List of mappings from one language code to another.
$wgScriptPath
The path we should point to.
static run( $event, array $args=[], $deprecatedVersion=null)
Call hook functions defined in Hooks::register and $wgHooks.
static getNonstandardLanguageCodeMapping()
Returns a mapping of non-standard language codes used by (current and previous version of) MediaWiki,...
$wgForeignFileRepos
Enable the use of files from one or more other wikis.
$wgLocalStylePath
The URL path of the skins directory.
$wgSecureLogin
This is to let user authenticate using https when they come from http.
$wgExtraNamespaces
Additional namespaces.
$wgNewUserLog
Maintain a log of newusers at Special:Log/newusers?
$wgMainWANCache
Main Wide-Area-Network cache type.
wfExpandUrl( $url, $defaultProto=PROTO_CURRENT)
Expand a potentially local URL to a fully-qualified URL.
$wgRightsUrl
Set this to specify an external URL containing details about the content license used on your wiki.
$wgUsePathInfo
Whether to support URLs like index.php/Page_title These often break when PHP is set up in CGI mode.
string $wgSharedUploadPath
Shortcut for the 'url' setting of $wgForeignFileRepos.