Jump to content

Manual/Upgrading

From Numinix MediaWiki Demo
Revision as of 17:02, 25 July 2026 by Admin (talk | contribs) (Seed from mediawiki.org for Seekmodo connector demo)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

<languages/> |left|right}}}} <translate>

Basic overview[edit]

File transfer[edit]

Choose a method for transferring files:

<translate>

<translate>

<translate>

  • Using a FTP client.</translate>

<translate>

  • The hosting company might provide a file manager interface via the web browser; check with your provider.</translate>

<translate>

<translate>

Preliminary[edit]

Read |file=UPGRADE</tvar>|text=the UPGRADE text file included in MediaWiki}}. </translate>

  1. <translate> Check the requirements</translate>
  2. <translate> Read the <tvar name=1>RELEASE-NOTES</tvar> file</translate>
  3. <translate> Read the <tvar name=1>UPGRADE</tvar> file</translate>
  4. <translate> Back up existing files and the database</translate>
  5. <translate> Unpack the new files</translate>
  6. <translate> Upgrade extensions</translate>
  7. <translate> Run the update script to check the database</translate>
  8. <translate> Test the update</translate>
  9. <translate> Remove leftovers from old installations</translate>

<translate>

Check requirements[edit]

</translate>

<translate> MediaWiki <tvar name=ver></tvar> requires: </translate>

  • PHP +

<translate>

  • One of the following:

</translate>

    • MariaDB +
    • MySQL +
    • PostgreSQL +
    • SQLite +


<translate> If you are using PostgreSQL, please also read <tvar name=upgrading></tvar>.

For more information, please read the <tvar name=req></tvar> and <tvar name=compat></tvar>.

Read the release notes[edit]

</translate> <translate> Within the distribution tarball, or within the files checked out/exported from [[<tvar name=gerrit>Special:MyLanguage/Gerrit</tvar>|Git]], there are a number of files with capitalized filenames, one of which contains the <tvar name=relnotes>|file=RELEASE-NOTES-|text=RELEASE-NOTES}}</tvar> ([[<tvar name=1>Special:MyLanguage/Release notes</tvar>|wiki]]).</translate> <translate> Now's the time to open it up and find out what's been changed in this release.</translate> <translate> You should also read the instructions in the <tvar name=1>UPGRADE</tvar> file.</translate>

<translate>

Clear pending jobs[edit]

</translate> <translate> For performance reasons, some actions in the database are delayed, and are managed by the [[<tvar name=man>Special:MyLanguage/Manual:Job queue</tvar>|job queue]].</translate> <translate> Those jobs are stored in database and contain parameters with information about actions it should perform.</translate> <translate> It's strongly recommended to run those pending jobs before upgrading the wiki, to avoid them failing in case the parameter specification of those jobs change on the new version.</translate> <translate> Use <tvar name=runJobs></tvar> to run all pending jobs and clear the queue before performing the upgrade.</translate>

<translate>

Back up existing files and the database[edit]

Full instructions: <tvar name=1></tvar>

While the upgrade scripts are well-maintained and robust, things could still go awry. Before proceeding to update the database schema, make a full [[<tvar name=backup>Special:MyLanguage/Manual:Backing up a wiki</tvar>|backup]] of the wiki, including both the database and the files:

  • the wiki's content, from the database, (make sure you get the character set specified correctly, first check <tvar name=1>LocalSettings.php</tvar>). It may be a good idea to create an XML dump in addition to the SQL database dump.

</translate>

  • <translate> MySQL, both SQL dump and XML dump are for use with the <tvar name=1>mysql</tvar> command:</translate>
mysqldump --user=wikidb_user --password=wikidb_userpassword wikidb > file.sql
mysqldump --user=wikidb_user --password=wikidb_userpassword wikidb --xml > file.xml
  • <translate> PostgreSQL, database dump for use with <tvar name=1>pg_restore</tvar> command:</translate>
pg_dump --create -Fc wikidb > file.db.dump
  • <translate> SQLite, you use a MediaWiki script for making a backup:</translate>
php wikifolder/maintenance/run.php SqliteMaintenance --backup-to file

<translate>

  • images and other media files (the contents of the <tvar name=1>images</tvar> directory, custom logo <tvar name=2>/skins/common/images/wiki.png</tvar>)</translate>

<translate>

  • configuration files, e.g. <tvar name=1>LocalSettings.php</tvar> and <tvar name=2>.htaccess</tvar> (if present)</translate>

<translate>

  • MediaWiki's program files, including all skins and extensions, especially if you modified them.

Unpack the new files[edit]

Using a tarball package[edit]

You can put the new files into place using FTP or the command line. Use the command line, if you have access to it! Using the command line will be much faster than having to upload each single one of the thousands of files via FTP. </translate>

Template:Note

<translate>

FTP or graphical[edit]

If you cannot access the command line on your server, download the MediaWiki tarball to your local computer and use <tvar name=7zip>7zip</tvar> to extract the tarball on your local PC.

After you extracted the files locally, use your favorite FTP client software to upload directories and files to the server.

cPanel File Manager[edit]

</translate> <translate> cPanel is a popular interface provided by many web hosts.</translate> <translate> This method is efficient because the files are uncompressed on the server itself.</translate>

  • <translate> Navigate to the directory that holds your wiki folder.</translate>
  • <translate> Upload the <tvar name=1>mediawiki-1.xx.x.tar.gz</tvar> file.</translate> <translate> You may need to hit "Reload" to see it.</translate>
  • <translate> Extract the <tvar name=1>mediawiki-1.xx.x.tar.gz</tvar> file.</translate> <translate> Reload again.</translate>
  • <translate> Confirm that the <tvar name=1>mediawiki-1.xx.x</tvar> folder is present.</translate>
  • <translate> Delete the tar.gz file.</translate>
  • <translate> Copy all necessary skins, extensions, image folders, customizations, and the <tvar name=1>LocalSettings.php</tvar> into the new folder.</translate> <translate> (See below.)</translate>
  • <translate> When you are ready to run <tvar name=1>update.php</tvar>, rename your old wiki folder and your new wiki folder.</translate> <translate> (e.g. "w" becomes "w1.34" and then "mediawiki1.35.0" becomes "w".)</translate> <translate> This step is easily reversible if you run into problems.</translate>

<translate>

Command line[edit]

</translate> <translate> You may need to run the command as sudo if you don't have full write permissions to the wiki install directories under your current user.</translate> <translate> When untarring a tarball package normally a new directory for the new wiki version will be created and you will have to copy the old configuration files and images directory from your old installation directory:</translate>

/path/to/your/new/installation/ wget https://releases.wikimedia.org/mediawiki//mediawiki-.tar.gz tar xvzf mediawiki-.tar.gz rm mediawiki-.tar.gz

<translate> (Open)Solaris users should use gtar, or: </translate>

$ gzip -dc mediawiki-.tar.gz | tar xf -

<translate>

Other files[edit]

After extracting the tarball, you should copy or move some files and folders from the old installation directory to the new one: </translate>

  • LocalSettings.php - <translate> contains your old configuration settings.</translate>

<translate>

  • The <tvar name=code-img>images</tvar> (or <tvar name=code-upl>uploads</tvar> in older versions) directory, which contains all the uploaded files to the wiki, unless you have chosen a different upload directory, and change the ownership and permissions. <tvar name=chmod>find ./images -type d -exec chmod 755 {} \;</tvar> and <tvar name=chgrp>chgrp -R apache images</tvar> (e.g. if your web user is apache).</translate>

<translate>

  • Some extensions in the <tvar name=dir>extensions</tvar> directory. You should always get updated extensions; old extensions aren't guaranteed to work with a newer version of MediaWiki.</translate>

<translate>

  • In case you use a [[<tvar name=logo>Special:MyLanguage/Manual:$wgLogo</tvar>|custom logo]] this file also needs to be restored from backup. Before 1.24 the logo is usually in <tvar name=dir1>skins/common/images/</tvar>. After 1.24 the logo is usually in <tvar name=dir2>resources/assets/</tvar> or <tvar name=dir3>images/</tvar> if that's what you chose to use.</translate> <translate> Then add to <tvar name=1>LocalSettings.php</tvar> e.g. <tvar name=logo2><syntaxhighlight lang=php inline>$wgLogo = "$wgScriptPath/images/logo.png";</syntaxhighlight></tvar></translate>

<translate>

  • For 1.35 you may need to restore the logos from <tvar name=1></tvar>.</translate> <translate> Then add to <tvar name=2>LocalSettings.php</tvar> e.g. <tvar name=3><syntaxhighlight lang=php inline>$wgLogos = [ '1x' => "path/to/1x_version.png", '2x' => "path/to/2x_version.png", 'svg' => "path/to/svg_version.svg" ];</syntaxhighlight></tvar></translate>

<translate>

  • Custom skins from within the <tvar name=skins-dir>skins</tvar> directory.</translate>

<translate>

  • Any modifications made to the old installation files or extensions.</translate>

<translate>

  • Any .htaccess file (if you're using Apache and you've defined any rules in them).

</translate>

<translate> Once done, make this new folder the published folder on the web server, or rename the old installation directory and then rename the new one to match the old name.</translate> <translate> Change ownership and group of everything so the web server has access to the files.</translate>

<translate>

Using Git[edit]

If using <tvar name=git></tvar>, export the files into a clean location, and then copy the old customized files into the new location as described in the previous section. </translate>

<translate> You will also need to install some external PHP libraries using Composer or a provided collection maintained for the Wikimedia wiki farm.</translate> <translate> More details on installing and updating external libraries can be found in the [[<tvar name=download>Download_from_Git#Fetch_external_libraries</tvar>|Git download documentation]].</translate>

<translate>

Using patch[edit]

</translate> <translate> A small patch file is usually made available for a minor version upgrade.</translate> <translate> You'll need to download patch to use this.</translate> <translate> Manually download and extract the patch file from [<tvar name=dumps>https://releases.wikimedia.org/mediawiki/</tvar> the dumps site] or follow the directions with wget below.</translate> <translate> Patches are incremental, you can not skip a version.</translate>

  1. <translate> cd to your main MediaWiki directory (the one with <tvar name=1>LocalSettings.php</tvar>).</translate>
  2. <translate> Download the patch file and gunzip it.</translate>
  3. <translate> Use <tvar name=patch>patch -p1 --dry-run</tvar> to check what will be changed (e.g., <tvar name=patch2>patch -p1 --dry-run -i mediawiki-x.xx.x.patch</tvar>)</translate>
  4. <translate> If all is well, run patch again without <tvar name=dry>--dry-run</tvar>.</translate>
  5. <translate> Check your Special:Version and you should see the new version number in place.</translate>

<translate>

Files remaining that may cause errors[edit]

If you unpacked over the old installation directory, some old files can cause problems with the new version.

Upgrade extensions[edit]

Certain extensions have been updated in order to work with the new version of MediaWiki. Be sure to upgrade to the latest versions of such extensions. You might need to perform manual updates to custom extensions.

Different [[<tvar name=tar>Special:MyLanguage/tarballs</tvar>|tarballs]] include some subsets of extensions and have versioning which helps you upgrade choosing the right one for your MediaWiki core release.

[[<tvar name=special>Special:ExtensionDistributor</tvar>|Extension Distributor]] works well for most people who want a snapshot of extensions that will work with their supported versions of MediaWiki. </translate>

<translate> If you want a lot of extensions then [[<tvar name=download>Special:MyLanguage/Download from Git</tvar>|downloading from Git]] is probably best.</translate> <translate> If you don't have Git but you want to upgrade a lot of extensions, you might consider using mwExtUpgrader.</translate>

<translate>

Adapt your <tvar name=1>LocalSettings.php</tvar>[edit]

If you use the same <tvar name=localsettings>LocalSettings.php</tvar> from the old version, you may need to adapt it to how new versions handle it:

Skin registration[edit]

</translate>

<translate> Since MediaWiki 1.24, bundled skins like Vector, Monobook, Modern and CologneBlue are no longer part of MediaWiki core, and they need to be registered explicitly in <tvar name=localsettings>LocalSettings.php</tvar> to use them, otherwise MediaWiki will warn that you don't have installed skins.

This is what you need to add to <tvar name=localsettings>LocalSettings.php</tvar> when upgrading from versions older than 1.24 and want to have available one of those skins: </translate>

<syntaxhighlight lang="php"> wfLoadSkin( 'Vector' ); wfLoadSkin( 'MonoBook' ); wfLoadSkin( 'Modern' ); wfLoadSkin( 'CologneBlue' ); </syntaxhighlight>

<translate> Other skins may still not be adapted to the new [[<tvar name=skinreg>Special:MyLanguage/Manual:Extension registration</tvar>|skin registration]] system, so refer to the documentation page about each skin to see how to register it properly in case of problems.

Extension registration[edit]

</translate>

<translate> Since MediaWiki 1.25, extensions use a new [[<tvar name=extreg>Special:MyLanguage/Manual:Extension registration</tvar>|extension registration]] system.

Previously your <tvar name=1>LocalSettings.php</tvar> would include something like: </translate>

<syntaxhighlight lang="php"> require_once "$IP/extensions/Cite/Cite.php"; require_once "$IP/extensions/Gadgets/Gadgets.php"; require_once "$IP/extensions/ImageMap/ImageMap.php"; require_once "$IP/extensions/InputBox/InputBox.php"; require_once "$IP/extensions/Nuke/Nuke.php"; require_once "$IP/extensions/ParserFunctions/ParserFunctions.php"; require_once "$IP/extensions/Poem/Poem.php"; require_once "$IP/extensions/SyntaxHighlight_GeSHi/SyntaxHighlight_GeSHi.php"; require_once "$IP/extensions/WikiEditor/WikiEditor.php"; </syntaxhighlight>

<translate> This can be converted to: </translate>

<syntaxhighlight lang="php"> wfLoadExtension( 'Cite' ); wfLoadExtension( 'Gadgets' ); wfLoadExtension( 'ImageMap' ); wfLoadExtension( 'InputBox' ); wfLoadExtension( 'Nuke' ); wfLoadExtension( 'ParserFunctions' ); wfLoadExtension( 'Poem' ); wfLoadExtension( 'SyntaxHighlight_GeSHi' ); wfLoadExtension( 'WikiEditor' ); </syntaxhighlight>

<translate> Extensions are being adapted to use the new extension registration system.</translate> <translate> Extensions that are not adapted should use the old way of installing them.</translate> <translate> Refer to the installation instructions on the extension's page for more information.</translate>

<translate>

Remove <tvar name=1>DefaultSettings.php</tvar> line (if necessary)[edit]

</translate>

<translate> Older versions of MediaWiki automatically generated a line in <tvar name=1>LocalSettings.php</tvar> calling <tvar name=2></tvar>.</translate> <translate> As of Version 1.38, this line is deprecated and does not work with many extensions.</translate> <translate> It needs to be removed.</translate>

<translate> Delete the following line:</translate> <syntaxhighlight lang="php"> require_once( "$IP/includes/DefaultSettings.php" ); </syntaxhighlight>

<translate>

Remove RenameUser from <tvar name=1>LocalSettings.php</tvar>[edit]

</translate>

<translate> If you are upgrading to 1.40 or above, <tvar name=1></tvar> has been merged into core.</translate> <translate> If present, this line must be deleted from <tvar name=1>LocalSettings.php</tvar> or the update will fail.</translate>

<syntaxhighlight lang="php"> wfLoadExtension( 'Renameuser' ); </syntaxhighlight>

<translate>

Remove Interwiki from <tvar name=1>LocalSettings.php</tvar>[edit]

</translate>

<translate> If you are upgrading to 1.44 or above, <tvar name=1></tvar> has been merged into core.</translate> <translate> If present, this line must be deleted from <tvar name=1>LocalSettings.php</tvar>.</translate>

<syntaxhighlight lang="php"> wfLoadExtension( 'Interwiki' ); </syntaxhighlight>

<translate> Please be sure to check for some Interwiki settings that have been removed or renamed.

Other variables[edit]

</translate> <translate> Some variables may be obsolete or even removed.</translate> <translate> Having them in <tvar name=localsettings>LocalSettings.php</tvar> usually won't have any effect.</translate> <translate> New variables may be added in newer versions, or some existing variables changed their type.</translate> <translate> We usually try to use sane defaults for them, and in case of type change, be backward compatible.</translate> <translate> In any case, take a look at the release notes to see those changes.</translate>

<translate>

Run the update script[edit]

</translate> <translate> You can upgrade the MediaWiki database in two ways: Either from the command line or from the web browser. If you have shell access to your server, upgrading from the command line is recommended, since this reduces the risk of the upgrade process being interrupted by a timeout or connection reset.

The script will also notify you if any of MediaWiki core's PHP dependencies are out of date.

Command line[edit]

</translate> <translate> Access the command line of your server or an SSH shell or similar. You can access the command line by connecting to your server via SSH.</translate> <translate> Current versions of all major operating systems (including Windows 10 and 11) contain a command-line OpenSSH client either by default or as an installable feature.</translate> <translate> If the local PC you are working on runs Microsoft Windows, you may want to (or, if it's 8.1 or older, have to) install <tvar name=putty>PuTTY</tvar>, which features a wizard-like interface (or a similar tool).</translate> <translate> From the command line or the Shell, execute the [[<tvar name=script>Special:MyLanguage/Manual:update.php</tvar>|update script]]:</translate>


$ php maintenance/run.php update


$ php maintenance/update.php

<translate> On a Linux server if you get an error, try performing the same command as root (by using the <tvar name=1>sudo</tvar> command).</translate> <translate> Note for simple installations on Windows (e.g. with <tvar name=xampp></tvar>):</translate> <translate> First make sure that your web server (such as Apache) and your database (such as MySQL) are running.</translate> <translate> Then run <tvar name=1>update.php</tvar>: right-click it, select Open With, and browse to <tvar name=2>PHP.exe</tvar>.</translate> <translate> The resulting command prompt window will likely autoclose when the schema upgrade completes.</translate>

<translate> MediaWiki will inspect the existing schema and update it to work with the new code, adding tables and columns as needed.</translate>

Template:Note

<translate>

What to do if it says "MediaWiki requires PHP x.y.z or higher; you are using PHP x.w.v"[edit]

See {{<tvar name=1>ll|Manual:Common errors and symptoms#MediaWiki requires PHP 7.4.3 or higher; you are using PHP 7.3.17</tvar>|Manual:Common errors and symptoms#MediaWiki requires PHP 7.4.3 or higher; you are using PHP 7.3.17}}

What to do if php update.php fails to do anything, resulting in a quick pause and then return to command prompt[edit]

This can be caused by a malfunctioning extension or skin.

  • Check that all extensions and skins called for in <tvar name=1>LocalSettings.php</tvar> are present</translate>

<translate>

  • Check that extensions are using the correct registration method (<tvar name=1>wfLoadExtension</tvar> vs. <tvar name=2>require_once</tvar>)</translate>

<translate>

  • Comment out the first half of the extensions in <tvar name=1>LocalSettings.php</tvar>.</translate> <translate> If this causes <tvar name=1>update.php</tvar> to work, uncomment half of that half (so 1/4 of the extensions).</translate> <translate> If this does NOT cause <tvar name=1>update.php</tvar> to work, uncomment the first half but comment out the second half, and then comment out half of the second half, etc.</translate> <translate> Repeat until <tvar name=1>update.php</tvar> works to find the one that is failing.</translate>

<translate>

What to do in case of "ALTER command denied to user" error (or similar)[edit]

In case the scripts abort with a message similar to: </translate>

Error: 1142 ALTER command denied to user 'wiki'@'localhost' for table 'mytable' (localhost)
ERROR: must be the owner of the mytable relation 

<translate> This means that you should check that you have defined <tvar name=1></tvar> and <tvar name=2></tvar> in your <tvar name=3></tvar> file (in the main directory). These are the user and password needed by this script in order to access to the database. </translate>

<translate> In some cases, an old $wgDBmwschema variable (for Postgres) seems to be read for the table name to update instead of $wgDBname, even when MySQL is used.</translate> <translate> If this is the case, just get rid of the <tvar name=1>$wgDBmwschema</tvar> definition in <tvar name=2>LocalSettings.php</tvar>.</translate>

<translate>

What to do in case of 'register_argc_argv is set to false' error[edit]

You may encounter the error: </translate>

Cannot get command line arguments, register_argc_argv is set to false
  1. <translate> Go to <tvar name=1>~/maintenance</tvar>.</translate> <translate> Either edit an existing <tvar name=2>php.ini</tvar> file, or create one.</translate>
  2. <translate> Add a line as follows:</translate>
register_argc_argv=true
  1. <translate> Re-run <tvar name=1>php update.php</tvar></translate>


<translate>

Web browser[edit]

</translate>

<translate>

See also <tvar name=update></tvar>

If your database is already big and in high production usage, then you should not be using the Web updater, e.g. because the update process will time out when the maximum_execution_time is reached. In that case you should use update.php from the command-line interface (not from the web). What exactly is "too big" depends on your server (e.g. on its performance, the load and on how long the maximum execution time of PHP allows the script to run). If your wiki is too big for the web updater and your hosting provider does not allow command-line access, then you need to migrate your wiki to another hosting account, preferably to one that does have shell access. </translate>

  1. <translate> Always [[<tvar name=1>Special:MyLanguage/Manual:Backing up a wiki</tvar>|back up]] before performing database maintenance.</translate>
  2. <translate> Navigate your web browser to <tvar name=1>/mw-config/index.php</tvar>.</translate> <translate> For example, if your wiki is at <tvar name=1>http://example.org/w/index.php</tvar>, then navigate to <tvar name=2>http://example.org/w/mw-config/index.php</tvar>.</translate>
  3. <translate> Select your language and click continue.</translate>
  4. <translate> The existing installation should be detected. Follow the instructions on the screen to upgrade it.
    If asked for the "upgrade key", open your <tvar name=localsettings></tvar> file and look for the key assigned to <tvar name=upgkey></tvar>.</translate>

<translate> It might happen that the web-updater does not seem to work: Instead of seeing the initial language selection screen, you might see an empty wiki page, possibly with some error message. In this case it is most likely that your web server uses Rewrite Rules (most likely for [[<tvar name=shorturl>Special:MyLanguage/Manual:Short URL</tvar>|short URLs]]), which do not show you the updater at mw-config/, but a wiki page at Mw-config/, with capital "M". In this case, rename the .htaccess file for the time of the update. Then you should be able to access the web-updater.</translate>

Template:Warning

<translate>

Test the update[edit]

Once the upgrade has been completed, browse to the wiki and check that the following operations work as expected:

  • Viewing pages
  • Editing pages
  • Uploading a file
  • Visit <tvar name=version>Special:Version</tvar> and check that the version shown is correct and that the extensions are present.

Remove leftovers from old installations[edit]

</translate> <translate> If you have copied your previous installation to another folder on the server, be sure to remove it or make it completely inaccessible from the web.</translate> <translate> It is very important to not leave old installations accessible from the web, since it completely defeats the purpose of upgrading, and leaves your server open to attacks.</translate>

<translate>

Frequently asked questions[edit]

</translate> <section begin=FAQ /> <translate>

How hard is it to upgrade?[edit]

If the only file you have modified is <tvar name=localsettings></tvar>, and you are upgrading from 1.5 or later, the process is very simple. The amount of human work involved is only a few minutes. The database schema changes will take an amount of time proportional to the size of your database — potentially hours for wikis with millions of pages, but for a more typical size of a few thousand pages, it is usually done in seconds. </translate>

<translate> Minor upgrades, within the same major version, say from <tvar name=1>.0</tvar> to <tvar name=2></tvar>, do not require any schema changes at all.</translate> <translate> You can just update the files. The database needs no update, hence it is not necessary to run the updater script.</translate>

<translate> Upgrading from 1.4 or earlier is potentially complicated because support for character sets other than UTF-8 was dropped, and the schema for storing bulk text changed. Please read the relevant section in the UPGRADE file.

Upgrading becomes difficult if you have modified our source code, and you don't want your changes to be overwritten. Tools such as <tvar name=diff>diff</tvar>, <tvar name=patch>patch</tvar>, <tvar name=meld>Meld</tvar> or <tvar name=winmerge>WinMerge</tvar> may be useful. There is also potential for trouble if you are using unmaintained extensions. Upgrade your extensions at the same time as you upgrade MediaWiki.

If you have modified the skin or use a custom skin, you very likely will have to adjust it to work again with the new version of MediaWiki. </translate>

Template:Tip

<translate>

How do I upgrade from a really old version? In one step, or in several steps?[edit]

</translate>

<translate> It depends: If you are upgrading from MediaWiki 1.4 or older, you should upgrade to MediaWiki 1.5 first.</translate> <translate> If you are upgrading from a Latin-1 wiki, use upgrade1_5.php (found in MediaWiki 1.5) to convert the relevant parts of the database to UTF-8 (<tvar name=latin></tvar> needs to be set to true in your <tvar name=localsettings></tvar> for this to work).</translate> <translate> Next, run <tvar name=1>update.php</tvar>, and then set the <tvar name=2></tvar> option in <tvar name=3>LocalSettings.php</tvar> to the encoding previously used by the wiki (e.g. windows-1252).</translate> <translate> This is basically how Wikipedia and other Wikimedia Foundation sites were upgraded from MediaWiki 1.4 to 1.5 – see some [[<tvar name=4>wikitech:Obsolete:1.5 upgrade</tvar>|related notes at Wikitech]].</translate> <translate> You may need to upgrade to MediaWiki 1.4 before running the upgrade1.5 script.</translate> <translate> If you want to make a database dump (e.g. MySQL) of your Latin-1 wiki, make sure the type of the <tvar name=1>old_text</tvar> field in the <tvar name=2></tvar> table is <tvar name=3>mediumblob</tvar>, not <tvar name=4>mediumtext</tvar>, to avoid character encoding issues.</translate>

<translate> If you are upgrading from MediaWiki 1.5 or newer to 1.35, you can upgrade in one step.</translate> <translate> The vast majority of reports, as well as automated testing, indicated that doing it in one step works just fine.</translate> <translate> If you have trouble believing this, read [[<tvar name=mail>mailarchive:mediawiki-l/2008-October/028975.html</tvar>|this mailing list post]].</translate> <translate> However, please note that when you update from old versions, chances that you will encounter PHP errors are bigger than when you upgrade from the version directly previous to the new version.</translate> <translate> You would have received these errors anyway, had you not skipped versions, but the errors would have been associated with each individual update.</translate> <translate> Instead, if you update several versions at once, you'll get the same set of errors all at the same time.</translate> <translate> This will make the upgrade more difficult, but do not forget that you did not have the trouble of updating to the intermediate versions, which you skipped!</translate>

<translate> If you are upgrading to MediaWiki 1.36 or later, only upgrades from the last two LTS releases are supported (<tvar name=1>phab:T259771</tvar>).</translate> <translate> This will mean that for very old versions, that you first upgrade to MediaWiki 1.35 and then upgrade to 1.43, and then (if you want to upgrade to a non-LTS version) upgrade to <tvar name=1></tvar>.</translate>

<translate>

Should I back up first?[edit]

Short answer: Yes.

Long answer: It depends on a) how much you value your data, b) how hard it is to create a backup and c) how confident you are with MySQL maintenance and administration. </translate>

<translate> An upgrade failure may leave your database in an inconsistent state, in between two versions.</translate> <translate> A PHP or MySQL error might happen during upgrade leaving your database partly upgraded.</translate> <translate> In such situations it may be possible to somehow fix this problem with much manual work.</translate> <translate> However, it will be way easier to just put a database backup from before running update.php in place and to continue with that.</translate> <translate> Otherwise you might have hours of - needless - work.</translate>

<translate> Recovery is often complex.</translate> <translate> Volunteers on the support forums are unlikely to be impressed if you neglect to make a backup and then need help to recover from upgrade-related corruption.</translate> <translate> A better outcome is if you can revert to your backup, and then [[<tvar name=1>phab:maniphest/task/create/</tvar>|report the bug against the corresponding MediaWiki project]] in the upgrade process which caused the corruption.</translate>

<translate>

Can I keep my <tvar name=1>LocalSettings.php</tvar>?[edit]

</translate> <translate> Yes, but you may have to make some minor changes. The format of <tvar name=1></tvar> is largely backward compatible.</translate> <translate> Changes which break <tvar name=1>LocalSettings.php</tvar> compatibility will be documented in the "configuration changes" section of the [[<tvar name=2>Special:MyLanguage/Release notes</tvar>|release notes]].</translate>

<translate>

Can my wiki stay online while it is upgrading?[edit]

Generally yes, however if you upgrade via Git, Git may temporarily (for a few seconds) break it.

If you are upgrading between minor releases of MediaWiki, all you need to do is update the source files.

Note: the following assumes you have command line access. If you are upgrading between major releases of MediaWiki, the preferred procedure is as follows: </translate>

  1. <translate> Unpack the new version of MediaWiki into a new directory</translate>
  2. <translate> Prepare that new directory: copy your current <tvar name=1>LocalSettings.php</tvar> from the old directory, copy any installed extensions and custom skins (if any).</translate> <translate> Check <tvar name=1></tvar> and <tvar name=2></tvar> settings in <tvar name=3>LocalSettings.php</tvar> and if necessary copy logo file from the old directory to the new directory.</translate>
  3. <translate> In the release notes for the new version, see if any changes need to be made to <tvar name=1>LocalSettings.php</tvar>.</translate>
  4. <translate> In the old directory, edit <tvar name=1>LocalSettings.php</tvar> and insert the following code.</translate> <translate> This will place the database in read-only mode for regular wiki activity, without restricting your own update actions.</translate> <translate> Users will see the message provided if they attempt an edit during the upgrade process:</translate>
    $adminTask = ( === || ( ) );
    = $adminTask ?  : '|class=s1}};
  5. <translate> Run the [[<tvar name=upg>Special:MyLanguage/Manual:Upgrading#Command_line_2</tvar>|update script]] or the web updater in the new directory.</translate>
  6. <translate> Copy the images from the images sub-directory from the old directory to the new directory.</translate>
  7. <translate> Swap the old directory and the new directory.</translate> <translate> (This will make the database writable again, because <tvar name=1></tvar> was only set in the old directory's <tvar name=2>LocalSettings.php</tvar>.)</translate>

<translate>

Why upgrade?[edit]

</translate>

<translate> Subscribe to <tvar name=announce>mediawiki-announce</tvar> to be notified of new releases.</translate>

<translate> Recent releases receive security fixes to keep your wiki and your host safe from vandals, while old releases don't (see <tvar name=lifecycle></tvar>).

New major releases come with new features, which you might want to use: see the [[<tvar name=1>Special:MyLanguage/Release notes</tvar>|release notes]] for details. </translate> <section end=FAQ />

<translate>

See also[edit]

<translate>

  • [[<tvar name=1>Special:MyLanguage/Communication</tvar>|Help and Support]] if you need help or something went wrong

</translate>

  • – <translate> if you don't have a successful backup</translate>

Sample content adapted from mediawikiwiki:Manual:Upgrading on mediawiki.org, licensed under CC BY-SA 4.0.