Go to the documentation of this file.
52 use Psr\Log\LoggerInterface;
64 if ( !defined(
'MEDIAWIKI' ) ) {
70 if ( !isset( $GLOBALS[
'wgScopeTest'] ) || $GLOBALS[
'wgScopeTest'] !==
$wgScopeTest ) {
71 echo
"Error, Setup.php must be included from the file scope.\n";
78 if ( ini_get(
'mbstring.func_overload' ) ) {
79 die(
'MediaWiki does not support installations where mbstring.func_overload is non-zero.' );
85 if ( !defined(
'MW_ENTRY_POINT' ) ) {
91 define(
'MW_ENTRY_POINT',
'unknown' );
100 require_once
"$IP/includes/AutoLoader.php";
101 require_once
"$IP/includes/Defines.php";
102 require_once
"$IP/includes/DefaultSettings.php";
103 require_once
"$IP/includes/GlobalFunctions.php";
106 if ( is_readable(
"$IP/vendor/autoload.php" ) ) {
107 require_once
"$IP/vendor/autoload.php";
108 } elseif ( file_exists(
"$IP/vendor/autoload.php" ) ) {
109 die(
"$IP/vendor/autoload.php exists but is not readable" );
113 if ( !interface_exists( LoggerInterface::class ) ) {
115 'MediaWiki requires the <a href="https://github.com/php-fig/log">PSR-3 logging ' .
116 "library</a> to be present. This library is not embedded directly in MediaWiki's " .
117 "git repository and must be installed separately by the end user.\n\n" .
118 'Please see <a href="https://www.mediawiki.org/wiki/Download_from_Git' .
119 '#Fetch_external_libraries">mediawiki.org</a> for help on installing ' .
120 'the required components.'
123 trigger_error( $message, E_USER_ERROR );
131 mb_internal_encoding(
'UTF-8' );
137 if ( defined(
'MW_CONFIG_CALLBACK' ) ) {
140 if ( !defined(
'MW_CONFIG_FILE' ) ) {
141 define(
'MW_CONFIG_FILE',
"$IP/LocalSettings.php" );
143 require_once MW_CONFIG_FILE;
153 if ( defined(
'MW_SETUP_CALLBACK' ) ) {
154 call_user_func( MW_SETUP_CALLBACK );
167 putenv(
"LC_ALL=$wgShellLocale" );
211 $wgLogo =
"$wgResourceBasePath/resources/assets/wiki.png";
248 "{$wgStylePath}/common/images/",
249 "{$wgResourceBasePath}/resources/assets/licenses/",
271 "$wgResourceBasePath/resources/assets/poweredby_mediawiki_88x31.png";
273 "$wgResourceBasePath/resources/assets/poweredby_mediawiki_132x47.png 1.5x, " .
274 "$wgResourceBasePath/resources/assets/poweredby_mediawiki_176x62.png 2x";
290 'name' =>
'fsLockManager',
291 'class' => FSLockManager::class,
292 'lockDirectory' =>
"{$wgUploadDirectory}/lockdir",
295 'name' =>
'nullLockManager',
296 'class' => NullLockManager::class,
306 'imageHeight' => 120,
307 'captionLength' =>
true,
309 'showDimensions' =>
true,
310 'mode' =>
'traditional',
318 'class' => LocalRepo::class,
343 'class' => ForeignDBRepo::class,
363 'class' => FileRepo::class,
377 'class' => ForeignAPIRepo::class,
378 'name' =>
'wikimediacommons',
379 'apibase' =>
'https://commons.wikimedia.org/w/api.php',
380 'url' =>
'https://upload.wikimedia.org/wikipedia/commons',
381 'thumbUrl' =>
'https://upload.wikimedia.org/wikipedia/commons/thumb',
383 'transformVia404' =>
true,
384 'fetchDescription' =>
true,
385 'descriptionCacheExpiry' => 43200,
386 'apiThumbCacheExpiry' => 0,
390 if ( !isset( $repo[
'directory'] ) && $repo[
'class'] === ForeignAPIRepo::class ) {
393 if ( !isset( $repo[
'backend'] ) ) {
394 $repo[
'backend'] = $repo[
'name'] .
'-backend';
470 $bcp47 = strtolower( $bcp47 );
479 Wikimedia\suppressWarnings();
481 Wikimedia\restoreWarnings();
526 if ( defined(
'MW_NO_SESSION' ) ) {
536 MediaWikiServices::resetGlobalInstance(
new GlobalVarConfig(),
'quick' );
540 define(
'MW_SERVICE_BOOTSTRAP_COMPLETE', 1 );
548 '$wgServer must be set in LocalSettings.php. ' .
549 'See <a href="https://www.mediawiki.org/wiki/Manual:$wgServer">' .
550 'https://www.mediawiki.org/wiki/Manual:$wgServer</a>.'
561 wfWarn(
'$wgServerName should be derived from $wgCanonicalServer, '
562 .
'not customized. Overwriting $wgServerName.' );
582 wfWarn(
'Secure login was enabled on a server that only supports '
583 .
'HTTP or HTTPS. Disabling secure login.' );
597 'class' => WANObjectCache::class,
604 MediaWikiServices::getInstance()->getDBLoadBalancer()->setTableAliases(
627 Wikimedia\suppressWarnings();
629 Wikimedia\restoreWarnings();
651 time() - ChronologyProtector::POSITION_COOKIE_TTL
653 MediaWikiServices::getInstance()->getDBLoadBalancerFactory()->setRequestInfo( [
655 'UserAgent' =>
$wgRequest->getHeader(
'User-Agent' ),
656 'ChronologyProtection' =>
$wgRequest->getHeader(
'MediaWiki-Chronology-Protection' ),
658 'ChronologyClientId' =>
$cpPosInfo[
'clientId']
659 ??
$wgRequest->getHeader(
'MediaWiki-Chronology-Client-Id' )
663 if (
$wgRequest->getCookie(
'UseDC',
'' ) ===
'master' ) {
667 MediaWikiServices::getInstance()->getMainWANObjectCache()->useInterimHoldOffCaching(
false );
673 $logger = LoggerFactory::getInstance(
'wfDebug' );
675 $self = $_SERVER[
'PHP_SELF'] ??
'';
676 $logger->debug(
"\n\nStart command line script $self" );
678 $debug =
"\n\nStart request {$wgRequest->getMethod()} {$wgRequest->getRequestURL()}\n";
680 $debug .=
"HTTP HEADERS:\n";
681 foreach (
$wgRequest->getAllHeaders() as $name => $value ) {
682 $debug .=
"$name: $value\n";
684 $debug .=
"(end headers)";
696 $wgContLang = MediaWikiServices::getInstance()->getContentLanguage();
713 if ( !defined(
'MW_NO_SESSION_HANDLER' ) ) {
715 MediaWiki\Session\SessionManager::singleton()
722 }
catch (
MediaWiki\Session\SessionOverflowException $ex ) {
726 foreach ( $ex->getSessionInfos() as $info ) {
727 $list[] = $info->getProvider()->describe(
$wgContLang );
735 if ( $session->isPersistent() ) {
740 if (
MediaWiki\Session\PHPSessionHandler::isEnabled() &&
741 ( $session->isPersistent() || $session->shouldRememberUser() ) &&
742 session_id() !== $session->getId()
745 if ( session_id() !==
'' ) {
746 wfDebugLog(
'session',
'PHP session {old_id} was already started, changing to {new_id}',
'all', [
747 'old_id' => session_id(),
748 'new_id' => $session->getId(),
750 session_write_close();
752 session_id( $session->getId() );
760 if ( !defined(
'MW_NO_SESSION_HANDLER' ) ) {
762 MediaWiki\Session\SessionManager::singleton()
789 return MediaWikiServices::getInstance()->getParser();
802 call_user_func( $func );
810 if ( $sessionUser->getId() === 0 &&
811 MediaWikiServices::getInstance()->getUserNameUtils()->isValid( $sessionUser->getName() )
813 $res = MediaWikiServices::getInstance()->getAuthManager()->autoCreateUser(
815 MediaWiki\Auth\AuthManager::AUTOCREATE_SOURCE_SESSION,
819 'event' =>
'autocreate',
824 unset( $sessionUser );
$wgCanonicalNamespaceNames
Definitions of the NS_ constants are in Defines.php.
string $wgSharedUploadDirectory
Shortcut for the 'directory' setting of $wgForeignFileRepos.
static getDeprecatedCodeMapping()
Returns a mapping of deprecated language codes that were used in previous versions of MediaWiki to up...
$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.
if( $wgServer===false) if( $wgCanonicalServer===false) $serverParts
$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']
$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(! $wgEmergencyContact) if(! $wgPasswordSender) if(! $wgNoReplyAddress) if( $wgSecureLogin &&substr( $wgServer, 0, 2) !=='//') $wgVirtualRestConfig['global']['domain']
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...
const CANONICAL_NAMES
Definitions of the NS_ constants are in Defines.php.
$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
Environment checks.
$wgCacheDirectory
Directory for caching data in the local filesystem.
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.
$wgRepositoryBaseUrl
Shortcut for the 'descBaseUrl' setting of $wgForeignFileRepos.
$wgUseInstantCommons
Use Wikimedia Commons as a foreign file repository.
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)
Logs 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.
global $wgCommandLineMode
if(!defined( 'MW_NO_SESSION') &&! $wgCommandLineMode) if(! $wgCommandLineMode) $wgFullyInitialised
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( $wgLogos !==false &&isset( $wgLogos['1x'])) if( $wgLogo===false) if( $wgUploadPath===false) if( $wgUploadDirectory===false) if( $wgReadOnlyFile===false) if( $wgFileCacheDirectory===false) if( $wgDeletedDirectory===false) if( $wgGitInfoCacheDirectory===false && $wgCacheDirectory !==false) if( $wgSharedPrefix===false) if( $wgSharedSchema===false) if( $wgMetaNamespace===false) $wgFileExtensions
Expand dynamic defaults and shortcuts.
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.
array false $wgLogos
The URL path to various wiki logos.
Accesses configuration settings from $GLOBALS.
if(! $wgCookiePrefix) $wgCookiePrefix
$wgSessionName
Override to customise the session name.
$wgCanonicalServer
Canonical URL of the server, to use in IRC feeds and notification e-mails.
bool $wgHashedUploadDirectory
Shortcut for setting hashLevels=2 in $wgLocalFileRepo.
$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.
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...
bool $wgForceHTTPS
If this is true, when an insecure HTTP request is received, always redirect to HTTPS.
$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.
Class to allow throwing wfDeprecated warnings when people use globals that we do not want them to.
static runner()
Get a HookRunner instance for calling hooks using the new interfaces.
$wgRCMaxAge
Recentchanges items are periodically purged; entries older than this many seconds will go.
$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.
$wgArticlePath
The URL path for primary article page views.
$wgCacheEpoch
Set this to current time to invalidate all prior cached pages.
$wgGitInfoCacheDirectory
Directory where GitInfo will look for pre-computed cache files.
static newFromKey( $key,... $params)
Factory function that is just wrapper for the real constructor.
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.
$wgThumbnailScriptPath
Give a path here to use thumb.php for thumbnail generation on client request, instead of generating t...
$wgGroupPermissions
Permission keys given to users in each group.
Abort the web request with a custom HTML string that will represent the entire response.
MediaWiki Session SessionId null $wgInitialSessionId
The persistent session ID (if any) loaded at startup.
$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.
$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 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.
bool $wgGenerateThumbnailOnParse
Render thumbnails while parsing wikitext.
$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.