MediaWiki
REL1_20
|
Base installer class. More...
Public Member Functions | |
__construct () | |
Constructor, always call this from child classes. | |
addInstallStep ($callback, $findStep= 'BEGINNING') | |
Add an installation step following the given step. | |
dirIsExecutable ($dir, $url) | |
Checks if scripts located in the given directory can be executed via the given URL. | |
disableLinkPopups () | |
doEnvironmentChecks () | |
Do initial checks of the PHP environment. | |
exportVars () | |
Exports all wg* variables stored by the installer into global scope. | |
findExtensions () | |
Finds extensions that follow the format /extensions/Name/Name.php, and returns an array containing the value for 'Name' for each found extension. | |
generateKeys () | |
Generate $wgSecretKey. | |
getDBInstaller ($type=false) | |
Get an instance of DatabaseInstaller for the specified DB type. | |
getFakePassword ($realPassword) | |
Get a fake password for sending back to the user in HTML. | |
getParserOptions () | |
getVar ($name, $default=null) | |
Get an MW configuration variable, or internal installer configuration variable. | |
parse ($text, $lineStart=false) | |
Convert wikitext $text to HTML. | |
performInstallation ($startCB, $endCB) | |
Actually perform the installation. | |
populateSiteStats (DatabaseInstaller $installer) | |
Install step which adds a row to the site_stats table with appropriate initial values. | |
restoreLinkPopups () | |
setParserLanguage ($lang) | |
ParserOptions are constructed before we determined the language, so fix it. | |
setPassword ($name, $value) | |
Set a variable which stores a password, except if the new value is a fake password in which case leave it as it is. | |
setVar ($name, $value) | |
Set a MW configuration variable, or internal installer configuration variable. | |
showError ($msg) | |
Same as showMessage(), but for displaying errors. | |
showMessage ($msg) | |
UI interface for displaying a short message The parameters are like parameters to wfMessage(). | |
showStatusMessage (Status $status) | |
Show a message to the installing user by using a Status object. | |
Static Public Member Functions | |
static | apacheModulePresent ($moduleName) |
Checks for presence of an Apache module. | |
static | getDBTypes () |
Get a list of known DB types. | |
static | getExistingLocalSettings () |
Determine if LocalSettings.php exists. | |
static | locateExecutable ($path, $names, $versionInfo=false) |
Search a path for any of the given executable names. | |
static | locateExecutableInDefaultPaths ($names, $versionInfo=false) |
Same as locateExecutable(), but checks in getPossibleBinPaths() by default. | |
static | maybeGetWebserverPrimaryGroup () |
On POSIX systems return the primary group of the webserver we're running under. | |
static | overrideConfig () |
Override the necessary bits of the config to run an installation. | |
Public Attributes | |
array | $licenses |
License types. | |
array | $rightsProfiles |
User rights profiles. | |
const | MINIMUM_PHP_VERSION = '5.3.2' |
Protected Member Functions | |
createMainpage (DatabaseInstaller $installer) | |
Insert Main Page with default content. | |
createSysop () | |
Create the first user account, grant it sysop and bureaucrat rights. | |
disableTimeLimit () | |
Disable the time limit for execution. | |
doGenerateKeys ($keys) | |
Generate a secret value for variables using our CryptRand generator. | |
envCheckBrokenXML () | |
Some versions of libxml+PHP break < and > encoding horribly. | |
envCheckCache () | |
Environment check for compiled object cache types. | |
envCheckCtype () | |
envCheckDB () | |
Environment check for DB types. | |
envCheckDiff3 () | |
Search for GNU diff3. | |
envCheckExtension () | |
Environment check for setting the preferred PHP file extension. | |
envCheckGraphics () | |
Environment check for ImageMagick and GD. | |
envCheckLibicu () | |
Check the libicu version. | |
envCheckMagicQuotes () | |
Environment check for magic_quotes_runtime. | |
envCheckMagicSybase () | |
Environment check for magic_quotes_sybase. | |
envCheckMbstring () | |
Environment check for mbstring.func_overload. | |
envCheckMemory () | |
Environment check for available memory. | |
envCheckModSecurity () | |
Scare user to death if they have mod_security. | |
envCheckPath () | |
Environment check for setting $IP and $wgScriptPath. | |
envCheckPCRE () | |
Environment check for the PCRE module. | |
envCheckPHP531 () | |
Test PHP (probably 5.3.1, but it could regress again) to make sure that reference parameters to __call() are not converted to null. | |
envCheckRegisterGlobals () | |
Environment check for register_globals. | |
envCheckSafeMode () | |
Environment check for safe_mode. | |
envCheckServer () | |
Environment check for the server hostname. | |
envCheckShellLocale () | |
TODO: document. | |
envCheckSuhosinMaxValueLength () | |
Checks if suhosin.get.max_value_length is set, and if so, sets $wgResourceLoaderMaxQueryLength to that value in the generated LocalSettings file. | |
envCheckUploadsDirectory () | |
TODO: document. | |
envCheckXML () | |
Environment check for the XML module. | |
envCheckZE1 () | |
Environment check for zend.ze1_compatibility_mode. | |
envGetDefaultServer () | |
Helper function to be called from envCheckServer() | |
getDocUrl ($page) | |
Overridden by WebInstaller to provide lastPage parameters. | |
getInstallSteps (DatabaseInstaller $installer) | |
Get an array of install steps. | |
includeExtensions () | |
Installs the auto-detected extensions. | |
unicodeChar ($c) | |
Convert a hex string representing a Unicode code point to that code point. | |
Static Protected Member Functions | |
static | getPossibleBinPaths () |
Get an array of likely places we can find executables. | |
Protected Attributes | |
array | $dbInstallers = array() |
Cached DB installer instances, access using getDBInstaller(). | |
array | $defaultVarNames |
MediaWiki configuration globals that will eventually be passed through to LocalSettings.php. | |
array | $envChecks |
A list of environment check methods called by doEnvironmentChecks(). | |
array | $extraInstallSteps = array() |
Extra steps for installation, for things like DatabaseInstallers to modify. | |
array | $internalDefaults |
Variables that are stored alongside globals, and are used for any configuration of the installation process aside from the MediaWiki configuration. | |
$mediaWikiAnnounceLanguages | |
Supported language codes for Mailman. | |
$mediaWikiAnnounceUrl = 'https://lists.wikimedia.org/mailman/subscribe/mediawiki-announce' | |
URL to mediawiki-announce subscription. | |
integer | $minMemorySize = 50 |
Minimum memory size in MB. | |
array | $objectCaches |
Known object cache types and the functions used to test for their existence. | |
ParserOptions | $parserOptions |
Cached ParserOptions, used by parse(). | |
Title | $parserTitle |
Cached Title, used by parse(). | |
array | $settings |
Static Protected Attributes | |
static | $dbTypes |
Private Member Functions | |
subscribeToMediaWikiAnnounce (Status $s) | |
Private Attributes | |
array | $installSteps = array() |
The actual list of installation steps. |
Base installer class.
This class provides the base for installation and update functionality for both MediaWiki core and extensions.
Definition at line 39 of file Installer.php.
Constructor, always call this from child classes.
Definition at line 320 of file Installer.php.
Referenced by CliInstaller\__construct().
Installer::addInstallStep | ( | $ | callback, |
$ | findStep = 'BEGINNING' |
||
) |
Add an installation step following the given step.
$callback | Array A valid installation callback array, in this form: array( 'name' => 'some-unique-name', 'callback' => array( $obj, 'function' ) ); |
$findStep | String the step to find. Omit to put the step at the beginning |
Definition at line 1635 of file Installer.php.
static Installer::apacheModulePresent | ( | $ | moduleName | ) | [static] |
Checks for presence of an Apache module.
Works only if PHP is running as an Apache module, too.
$moduleName | String: Name of module to check. |
Definition at line 1272 of file Installer.php.
Installer::createMainpage | ( | DatabaseInstaller $ | installer | ) | [protected] |
Insert Main Page with default content.
$installer | DatabaseInstaller |
Definition at line 1580 of file Installer.php.
Installer::createSysop | ( | ) | [protected] |
Create the first user account, grant it sysop and bureaucrat rights.
Definition at line 1507 of file Installer.php.
Installer::dirIsExecutable | ( | $ | dir, |
$ | url | ||
) |
Checks if scripts located in the given directory can be executed via the given URL.
Used only by environment checks.
$dir | string |
$url | string |
Reimplemented in CliInstaller.
Definition at line 1225 of file Installer.php.
Definition at line 580 of file Installer.php.
Installer::disableTimeLimit | ( | ) | [protected] |
Disable the time limit for execution.
Some long-running pages (Install, Upgrade) will want to do this
Definition at line 1643 of file Installer.php.
Do initial checks of the PHP environment.
Set variables according to the observed environment.
It's possible that this may be called under the CLI SAPI, not the SAPI that the wiki will primarily run under. In that case, the subclass should initialise variables such as wgScriptPath, before calling this function.
Under the web subclass, it can already be assumed that PHP 5+ is in use and that sessions are working.
Definition at line 388 of file Installer.php.
Installer::doGenerateKeys | ( | $ | keys | ) | [protected] |
Generate a secret value for variables using our CryptRand generator.
Produce a warning if the random source was insecure.
$keys | Array |
Definition at line 1479 of file Installer.php.
References $keys.
Installer::envCheckBrokenXML | ( | ) | [protected] |
Some versions of libxml+PHP break < and > encoding horribly.
Definition at line 680 of file Installer.php.
Installer::envCheckCache | ( | ) | [protected] |
Environment check for compiled object cache types.
Definition at line 833 of file Installer.php.
References $limit, and showMessage().
Installer::envCheckCtype | ( | ) | [protected] |
Installer::envCheckDB | ( | ) | [protected] |
Installer::envCheckDiff3 | ( | ) | [protected] |
Installer::envCheckExtension | ( | ) | [protected] |
Environment check for setting the preferred PHP file extension.
Definition at line 935 of file Installer.php.
Installer::envCheckGraphics | ( | ) | [protected] |
Environment check for ImageMagick and GD.
Definition at line 885 of file Installer.php.
References setVar().
Installer::envCheckLibicu | ( | ) | [protected] |
Check the libicu version.
Definition at line 1084 of file Installer.php.
Installer::envCheckMagicQuotes | ( | ) | [protected] |
Environment check for magic_quotes_runtime.
Definition at line 708 of file Installer.php.
References showError().
Installer::envCheckMagicSybase | ( | ) | [protected] |
Environment check for magic_quotes_sybase.
Definition at line 720 of file Installer.php.
Installer::envCheckMbstring | ( | ) | [protected] |
Environment check for mbstring.func_overload.
Definition at line 732 of file Installer.php.
Installer::envCheckMemory | ( | ) | [protected] |
Installer::envCheckModSecurity | ( | ) | [protected] |
Scare user to death if they have mod_security.
Definition at line 855 of file Installer.php.
Installer::envCheckPath | ( | ) | [protected] |
Environment check for setting $IP and $wgScriptPath.
Reimplemented in WebInstaller, and CliInstaller.
Definition at line 923 of file Installer.php.
Installer::envCheckPCRE | ( | ) | [protected] |
Environment check for the PCRE module.
Definition at line 784 of file Installer.php.
Installer::envCheckPHP531 | ( | ) | [protected] |
Test PHP (probably 5.3.1, but it could regress again) to make sure that reference parameters to __call() are not converted to null.
Definition at line 694 of file Installer.php.
Installer::envCheckRegisterGlobals | ( | ) | [protected] |
Environment check for register_globals.
Definition at line 670 of file Installer.php.
Installer::envCheckSafeMode | ( | ) | [protected] |
Installer::envCheckServer | ( | ) | [protected] |
Environment check for the server hostname.
Definition at line 906 of file Installer.php.
Installer::envCheckShellLocale | ( | ) | [protected] |
Installer::envCheckSuhosinMaxValueLength | ( | ) | [protected] |
Checks if suhosin.get.max_value_length is set, and if so, sets $wgResourceLoaderMaxQueryLength to that value in the generated LocalSettings file.
Definition at line 1043 of file Installer.php.
References $dir, and showMessage().
Installer::envCheckUploadsDirectory | ( | ) | [protected] |
Installer::envCheckXML | ( | ) | [protected] |
Installer::envCheckZE1 | ( | ) | [protected] |
Environment check for zend.ze1_compatibility_mode.
Definition at line 744 of file Installer.php.
Installer::envGetDefaultServer | ( | ) | [abstract, protected] |
Helper function to be called from envCheckServer()
Reimplemented in WebInstaller, and CliInstaller.
Exports all wg* variables stored by the installer into global scope.
Definition at line 617 of file Installer.php.
Finds extensions that follow the format /extensions/Name/Name.php, and returns an array containing the value for 'Name' for each found extension.
Definition at line 1308 of file Installer.php.
Generate $wgSecretKey.
Will warn if we had to use an insecure random source.
Definition at line 1464 of file Installer.php.
Installer::getDBInstaller | ( | $ | type = false | ) |
Get an instance of DatabaseInstaller for the specified DB type.
$type | Mixed: DB installer for which is needed, false to use default. |
Definition at line 447 of file Installer.php.
static Installer::getDBTypes | ( | ) | [static] |
Installer::getDocUrl | ( | $ | page | ) | [protected] |
Overridden by WebInstaller to provide lastPage parameters.
$page | string |
Reimplemented in WebInstaller.
Definition at line 1298 of file Installer.php.
static Installer::getExistingLocalSettings | ( | ) | [static] |
Determine if LocalSettings.php exists.
If it does, return its variables, merged with those from AdminSettings.php, as an array.
Definition at line 468 of file Installer.php.
Referenced by CliInstaller\execute(), and WebInstaller_ExistingWiki\execute().
Installer::getFakePassword | ( | $ | realPassword | ) |
Get a fake password for sending back to the user in HTML.
This is a security mechanism to avoid compromise of the password in the event of session ID compromise.
$realPassword | String |
Definition at line 497 of file Installer.php.
Installer::getInstallSteps | ( | DatabaseInstaller $ | installer | ) | [protected] |
Get an array of install steps.
Should always be in the format of array( 'name' => 'someuniquename', 'callback' => array( $obj, 'method' ), ) There must be a config-install-$name message defined per step, which will be shown on install.
$installer | DatabaseInstaller so we can make callbacks |
Definition at line 1379 of file Installer.php.
References getVar().
Definition at line 576 of file Installer.php.
static Installer::getPossibleBinPaths | ( | ) | [static, protected] |
Get an array of likely places we can find executables.
Check a bunch of known Unix-like defaults, as well as the PATH environment variable (which should maybe make it work for Windows?)
Definition at line 1149 of file Installer.php.
Installer::getVar | ( | $ | name, |
$ | default = null |
||
) |
Get an MW configuration variable, or internal installer configuration variable.
The defaults come from $GLOBALS (ultimately DefaultSettings.php). Installer variables are typically prefixed by an underscore.
$name | String |
$default | Mixed |
Definition at line 432 of file Installer.php.
Referenced by CliInstaller\__construct(), CliInstaller\envCheckPath(), CliInstaller\envGetDefaultServer(), and getInstallSteps().
Installer::includeExtensions | ( | ) | [protected] |
Installs the auto-detected extensions.
Definition at line 1335 of file Installer.php.
static Installer::locateExecutable | ( | $ | path, |
$ | names, | ||
$ | versionInfo = false |
||
) | [static] |
Search a path for any of the given executable names.
Returns the executable name if found. Also checks the version string returned by each executable.
Used only by environment checks.
$path | String: path to search |
$names | Array of executable names |
$versionInfo | Boolean false or array with two members: 0 => Command to run for version check, with $1 for the full executable name 1 => String to compare the output with |
If $versionInfo is not false, only executables with a version matching $versionInfo[1] will be returned.
Definition at line 1174 of file Installer.php.
static Installer::locateExecutableInDefaultPaths | ( | $ | names, |
$ | versionInfo = false |
||
) | [static] |
Same as locateExecutable(), but checks in getPossibleBinPaths() by default.
$names | |
$versionInfo | bool |
Definition at line 1207 of file Installer.php.
static Installer::maybeGetWebserverPrimaryGroup | ( | ) | [static] |
On POSIX systems return the primary group of the webserver we're running under.
On other systems just returns null.
This is used to advice the user that he should chgrp his mw-config/data/images directory as the webserver user before he can install.
Public because SqliteInstaller needs it, and doesn't subclass Installer.
Definition at line 525 of file Installer.php.
static Installer::overrideConfig | ( | ) | [static] |
Override the necessary bits of the config to run an installation.
Definition at line 1602 of file Installer.php.
Installer::parse | ( | $ | text, |
$ | lineStart = false |
||
) |
Convert wikitext $text to HTML.
This is potentially error prone since many parser features require a complete installed MW database. The solution is to just not use those features when you write your messages. This appears to work well enough. Basic formatting and external links work just fine.
But in case a translator decides to throw in a "#ifexist" or internal link or whatever, this function is guarded to catch the attempted DB access and to present some fallback text.
$text | String |
$lineStart | Boolean |
Definition at line 556 of file Installer.php.
Installer::performInstallation | ( | $ | startCB, |
$ | endCB | ||
) |
Actually perform the installation.
$startCB | Array A callback array for the beginning of each step |
$endCB | Array A callback array for the end of each step |
Definition at line 1431 of file Installer.php.
Referenced by CliInstaller\execute().
Installer::populateSiteStats | ( | DatabaseInstaller $ | installer | ) |
Install step which adds a row to the site_stats table with appropriate initial values.
$installer | DatabaseInstaller |
Definition at line 597 of file Installer.php.
Definition at line 584 of file Installer.php.
Installer::setParserLanguage | ( | $ | lang | ) |
ParserOptions are constructed before we determined the language, so fix it.
$lang | Language |
Definition at line 1288 of file Installer.php.
Installer::setPassword | ( | $ | name, |
$ | value | ||
) |
Set a variable which stores a password, except if the new value is a fake password in which case leave it as it is.
$name | String |
$value | Mixed |
Definition at line 508 of file Installer.php.
Referenced by WebInstaller\setVarsFromRequest().
Installer::setVar | ( | $ | name, |
$ | value | ||
) |
Set a MW configuration variable, or internal installer configuration variable.
$name | String |
$value | Mixed |
Definition at line 418 of file Installer.php.
Referenced by CliInstaller\__construct(), envCheckGraphics(), and WebInstaller\setVarsFromRequest().
Installer::showError | ( | $ | msg | ) | [abstract] |
Same as showMessage(), but for displaying errors.
$msg |
Reimplemented in WebInstaller, and CliInstaller.
Referenced by envCheckMagicQuotes().
Installer::showMessage | ( | $ | msg | ) | [abstract] |
UI interface for displaying a short message The parameters are like parameters to wfMessage().
The messages will be in wikitext format, which will be converted to an output format such as HTML or text before being sent to the user.
$msg |
Reimplemented in WebInstaller, and CliInstaller.
Referenced by envCheckCache(), envCheckCtype(), and envCheckSuhosinMaxValueLength().
Installer::showStatusMessage | ( | Status $ | status | ) | [abstract] |
Show a message to the installing user by using a Status object.
$status | Status |
Reimplemented in WebInstaller, and CliInstaller.
Installer::subscribeToMediaWikiAnnounce | ( | Status $ | s | ) | [private] |
$s | Status |
Definition at line 1548 of file Installer.php.
Installer::unicodeChar | ( | $ | c | ) | [protected] |
Convert a hex string representing a Unicode code point to that code point.
$c | String |
Definition at line 1062 of file Installer.php.
array Installer::$dbInstallers = array() [protected] |
Cached DB installer instances, access using getDBInstaller().
Definition at line 52 of file Installer.php.
Installer::$dbTypes [static, protected] |
array( 'mysql', 'postgres', 'oracle', 'sqlite', 'ibm_db2', )
Definition at line 81 of file Installer.php.
array Installer::$defaultVarNames [protected] |
MediaWiki configuration globals that will eventually be passed through to LocalSettings.php.
The names only are given here, the defaults typically come from DefaultSettings.php.
Definition at line 128 of file Installer.php.
array Installer::$envChecks [protected] |
array( 'envCheckDB', 'envCheckRegisterGlobals', 'envCheckBrokenXML', 'envCheckPHP531', 'envCheckMagicQuotes', 'envCheckMagicSybase', 'envCheckMbstring', 'envCheckZE1', 'envCheckSafeMode', 'envCheckXML', 'envCheckPCRE', 'envCheckMemory', 'envCheckCache', 'envCheckModSecurity', 'envCheckDiff3', 'envCheckGraphics', 'envCheckServer', 'envCheckPath', 'envCheckExtension', 'envCheckShellLocale', 'envCheckUploadsDirectory', 'envCheckLibicu', 'envCheckSuhosinMaxValueLength', 'envCheckCtype', )
A list of environment check methods called by doEnvironmentChecks().
These may output warnings using showMessage(), and/or abort the installation process by returning false.
Definition at line 95 of file Installer.php.
array Installer::$extraInstallSteps = array() [protected] |
Extra steps for installation, for things like DatabaseInstallers to modify.
Definition at line 204 of file Installer.php.
array Installer::$installSteps = array() [private] |
The actual list of installation steps.
This will be initialized by getInstallSteps()
Definition at line 198 of file Installer.php.
array Installer::$internalDefaults [protected] |
array( '_UserLang' => 'en', '_Environment' => false, '_CompiledDBs' => array(), '_SafeMode' => false, '_RaiseMemory' => false, '_UpgradeDone' => false, '_InstallDone' => false, '_Caches' => array(), '_InstallPassword' => '', '_SameAccount' => true, '_CreateDBAccount' => false, '_NamespaceType' => 'site-name', '_AdminName' => '', '_AdminPassword' => '', '_AdminPassword2' => '', '_AdminEmail' => '', '_Subscribe' => false, '_SkipOptional' => 'continue', '_RightsProfile' => 'wiki', '_LicenseCode' => 'none', '_CCDone' => false, '_Extensions' => array(), '_MemCachedServers' => '', '_UpgradeKeySupplied' => false, '_ExistingDBSettings' => false, )
Variables that are stored alongside globals, and are used for any configuration of the installation process aside from the MediaWiki configuration.
Map of names to defaults.
Definition at line 166 of file Installer.php.
array Installer::$licenses |
License types.
Definition at line 244 of file Installer.php.
Installer::$mediaWikiAnnounceLanguages [protected] |
array( 'ca', 'cs', 'da', 'de', 'en', 'es', 'et', 'eu', 'fi', 'fr', 'hr', 'hu', 'it', 'ja', 'ko', 'lt', 'nl', 'no', 'pl', 'pt', 'pt-br', 'ro', 'ru', 'sl', 'sr', 'sv', 'tr', 'uk' )
Supported language codes for Mailman.
Definition at line 290 of file Installer.php.
Installer::$mediaWikiAnnounceUrl = 'https://lists.wikimedia.org/mailman/subscribe/mediawiki-announce' [protected] |
URL to mediawiki-announce subscription.
Definition at line 285 of file Installer.php.
integer Installer::$minMemorySize = 50 [protected] |
Minimum memory size in MB.
Definition at line 58 of file Installer.php.
array Installer::$objectCaches [protected] |
array( 'xcache' => 'xcache_get', 'apc' => 'apc_fetch', 'wincache' => 'wincache_ucache_get' )
Known object cache types and the functions used to test for their existence.
Definition at line 210 of file Installer.php.
ParserOptions Installer::$parserOptions [protected] |
Cached ParserOptions, used by parse().
Definition at line 70 of file Installer.php.
Title Installer::$parserTitle [protected] |
Cached Title, used by parse().
Definition at line 64 of file Installer.php.
array Installer::$rightsProfiles |
array( 'wiki' => array(), 'no-anon' => array( '*' => array( 'edit' => false ) ), 'fishbowl' => array( '*' => array( 'createaccount' => false, 'edit' => false, ), ), 'private' => array( '*' => array( 'createaccount' => false, 'edit' => false, 'read' => false, ), ), )
User rights profiles.
Definition at line 220 of file Installer.php.
array Installer::$settings [protected] |
Definition at line 46 of file Installer.php.
const Installer::MINIMUM_PHP_VERSION = '5.3.2' |
Definition at line 42 of file Installer.php.