Manual:Upgrading/ru



Перенос файлов
Выберите метод переноса файлов:


 * wget
 * Безопасное копирование с помощью SCP или WinSCP
 * С помощью SSH File Transfer Protocol (SFTP)
 * С использованием FTP-клиента.
 * С помощью веб-интерфейса файлового менеджера, предоставляемого хостинг-провайдером; узнайте о такой возможности у своего провайдера.
 * Иной метод. Список возможных методов можно найти в статье List of file transfer protocols

Подготовка
В первую очередь, прочтите.


 * 1) Проверьте соответствие требованиям
 * 1) Прочтите примечания к релизу (release notes)
 * 1) Read the UPGRADE file
 * 1) Сделайте резервную копию существующих файлов и базы данных
 * 2) Распакуйте новые файлы
 * 3) Обновите расширения
 * 4) Запустите скрипт обновления для проверки базы данных
 * 5) Протестируйте обновление
 * 6) Удалите "хвосты" от старых инсталляций

Проверка требований
MediaWiki версии требует:


 * PHP +
 * Одно из следующего:
 * MySQL + (или эквивалентную версию MariaDB)
 * PostgreSQL +
 * SQLite +

Since Version 1.36, MediaWiki only commits to supporting upgrades from two LTS releases ago (see T259771). Upgrades from older versions of MediaWiki will have to be performed in multiple steps. .

Если вы используете PostgreSQL, прочтите, пожалуйста,.

Более подробно об этом можно прочесть в и.

Прочтите примечания к релизу
Где-то внутри дистрибутивного архива (tarball), или среди файлов, полученных или экспортированных из Git, есть ряд файлов с именами, набранными прописными литерами. Один из них содержит —  (wiki). Теперь — самое время, чтобы открыть этот файл и узнать то, что изменилось в этом релизе. You should also read the instructions in the UPGRADE file.

Очистка списка задач
В интересах производительности некоторые действия с базой данных откладываются и управляются очередью задач (смотрите job queue) Эти задачи сохраняются в базе данных и содержат параметры с информацией о необходимых действиях. Крайне рекомендуется выполнить отложенные задачи перед обновлением вики во избежание их потери, что может произойти если обновление затронет параметры, указанные в этих задачах. Используйте чтобы выполнить все отложенные задачи и очистить очередь перед выполнением обновления.

Сделайте резервную копию существующих файлов и базы данных

 * Смотрите более подробные инструкции в разделе 

Несмотря на то, что скрипты обновления тщательно отлажены и проверены, всегда остаётся вероятность сбоя. Поэтому перед обновлением базы данных, сделайте полную резервную копию своего вики-проекта, включая резервную копию базы данных, а также файлы:


 * содержимое базы данных вики-проекта (проверьте LocalSettings.php и убедитесь, что получили тексты в корректной кодировке); в дополнение к резервной копии базы данных не повредит сделать и экспорт всех страниц в формате XML.
 * MySQL, в т.ч. текстовый SQL-дамп и XML-дамп для использования с командой :

mysqldump --user=wikidb_user --password=wikidb_userpassword wikidb > file.sql mysqldump --user=wikidb_user --password=wikidb_userpassword wikidb --xml > file.xml
 * PostgreSQL, дамп базы данных для использования с командой ::

pg_dump --create -Fc wikidb > file.db.dump
 * SQLite, используя скрипт MediaWiki для создания резервной копии:

php wikifolder/maintenance/sqlite.php --backup-to file
 * изображения и другие медиафайлы (находящиеся в каталоге, а также логотип /skins/common/images/wiki.png)
 * конфигурационные файлы, т.е.  и   (если есть)
 * программные файлы MediaWiki, включая все стили оформления и расширения, особенно если вы их изменяли.

Использование пакета tarball
Вы можете загрузить новые файлы при помощи FTP или командной строки. Использование командной строки возможно только при наличии соответствующих прав доступа! Этот способ гораздо эффективнее, чем FTP, когда каждый из сотен файлов загружается отдельно.

FTP или графический интерфейс
Если у вас нет доступа к командной строке вашего сервера, загрузите на локальный компьютер архив (tarball) с MediaWiki, и распакуйте его на локальном компьютере с помощью 7zip.

После того, как файлы будут извлечены локально, воспользуйтесь FTP-клиентом для загрузки каталогов и файлов на сервер.

cPanel File Manager
cPanel is a popular interface provided by many web hosts. This method is efficient because the files are uncompressed on the server itself.


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

Командная строка
You may need to run the command as  if you don't have full write permissions to the wiki install directories under your current user. 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:

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

Пользователи (Open)Solaris должны использовать gtar, или же следующий способ:

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

Другие файлы
After extracting the tarball, you should copy or move some files and folders from the old installation directory to the new one:


 * , содержит старые параметры конфигурации.
 * The  (or   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.   and   (e.g. if your web user is apache).
 * Some extensions in the  directory. You should always get updated extensions, old extensions aren't guaranteed to work with a newer version of MediaWiki.
 * In case you use a custom logo this file also needs to be restored from backup. Before 1.24 usually in . After 1.24 in   or   if that's what you chose to use. Then add to LocalSettings.php e.g.
 * Пользовательское оформление в  каталоге.
 * Любые изменения, внесенные в старые установочные файлы или расширений.
 * Любой файл .htaccess (если вы используете Apache и вы определили какие-либо правила в них).

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.

Использование Git
При использовании @git, закачайте файлы в новую папку, а затем скопируйте старые файлы настройки в эту папку, как описано в предыдущем разделе.

You will also need to install some external PHP libraries using Composer or a provided collection maintained for the Wikimedia wiki farm. More details on installing and updating external libraries can be found in the Git download documentation.

Использование патчей
Небольшой файл исправлений обычно становится доступным для незначительного обновления версии. Вручную загрузите с сайта с дампами и извлеките файл патча, или следуйте инструкциям ниже, чтобы загрузить патч с помощью команды wget. Патчи являются инкрементными, вы не можете пропускать версии.


 * 1) С помощью команды cd перейдите в основной каталог MediaWiki (содержащий файл LocalSettings.php).
 * 2) Скачайте файл патча и распакуйте его с помощью команды gunzip.
 * 3) С помощью команды   проверьте, какие изменения будут произведены (например,  )
 * 4) Если всё хорошо, запустите команду patch снова, но без.
 * 5) Зайдите на Special:Version и убедитесь, что номер версии изменился на новый.

Файлы, оставление которых может привести к ошибкам
Если вы распаковали дистрибутив поверх старого каталога установки, некоторые старые файлы могут вызвать проблемы с новой версией.

If you are not using profiling, but have a  file in the MediaWiki root folder, you may receive errors referring to. Deleting, or renaming, the  file will resolve this error. The  file, also in the MediaWiki root folder, can serve as a template should you enable profiling in the future.

MediaWiki 1.23 deprecates the skin autodiscovery mechanism of core skin files. After upgrading to this version, you should ensure that the old files,  ,   and   directly in the   directory as well as the according subfolders inside the   directory got removed. MediaWiki will log warnings if any of them are still found to help you remember. (You will also need to adjust any custom skins to follow a similar convention.) See for details.

MediaWiki 1.24 changes the paths of core skin files. After upgrading to this version, you should ensure that the old files,  ,   and   directly in the   directory are no longer present. See for details.

Обновите расширения
Некоторые расширения были обновлены, чтобы работать с новой версией MediaWiki. Убедитесь, что обновили такие расширения до их последних версий. Вполне возможно, что вам потребуется вручную выполнить обновления некоторых расширений.

Различные архивы включают в себя некоторые наборы расширений и имеют функционал управления версиями, который помогает при обновлении выбрать правильный вариант для вашего выпуска ядра MediaWiki.

Extension Distributor works well for most people who want a snapshot of extensions that will work with their supported versions of MediaWiki.

If you want a lot of extensions then downloading from Git is probably best. If you don't have Git but you want to upgrade a lot of extensions, you might consider using mwExtUpgrader.

Откорректируйте ваш LocalSettings.php
Если вы используете тот же  от старой версии, вы должны его адаптировать так, чтобы новая версия его обрабатывала правильно:

Регистрация тем оформления
Начиная с MediaWiki 1.24, интегрированные темы оформления, такие как Vector, Monobook, Modern и CologneBlue, больше не являются частью ядра MediaWiki, и они должны быть явно зарегистрированы в, чтобы их можно было использовать, иначе MediaWiki предупредит, что у вас нет установленных тем оформления.

Если хотите иметь в наличии одну их этих тем оформления при обновлении с версий старше 1.24, в   нужно добавить следующее:

Некоторые другие темы оформления все еще могут быть не адаптированы к новой системе регистрации тем оформления, поэтому в случае возникновения проблем обратитесь к странице документации каждой темы оформления, чтобы узнать, как правильно её зарегистрировать.

Регистрация расширений
В MediaWiki 1.25 используется новая система регистрации расширений.

До этого ваш, например, выглядел так:

Сейчас нужно преобразовать в:

Расширения должны быть адаптированы для использования с новой системой регистрации расширений. Расширения, которые не адаптированы, должны использовать старый способ установки. Для получения дополнительной информации обратитесь к инструкциям по установке на странице расширения.

Другие переменные
Некоторые переменные могут быть устаревшими или даже удалены. Если они находятся в, то не будет никакого эффекта. Новые переменные могут быть добавлены в более новых версиях, а некоторые существующие переменные изменили свой тип. Мы обычно стараемся использовать для них привычные значения по умолчанию, а в случае изменения типа - обратную совместимость. В любом случае, обращайте внимание на примечания к выпуску, чтобы увидеть эти изменения.

Запустите скрипт обновления
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 attempt to download any missing dependencies which MediaWiki needs.

Командная строка (shell)
Доступ к командной строке на вашем сервере будет организован через SSH shell или похожим образом. Вы можете работать в командной строке, подключившись к серверу через SSH. На локальном компьютере под управлением Microsoft Windows, для использования SSH вам потребуется программа типа PuTTY. Из командной строки, с использованием SSH, или иным аналогичным образом, перейдите в каталог  и выполните сценарий обновления:

$ php update.php

Если вы столкнулись с ошибкой на сервере под управлением Linux, попробуйте повторить ту же самую команду как root ( sudo php update.php ). Примечание для простой установки в Windows (например, с ): Сначала убедитесь, что ваше серверное приложение (например, Apache) и база данных (например, MySQL) запущены. Then run : right-click it, select Open With, and browse to PHP.exe. The resulting command prompt window will likely autoclose when the schema upgrade completes.

You might see a message that your PHP version is too old and that MediaWiki needs a newer version. After that message the update aborts. Reason for this error is that the command line can use another PHP version than that one which you have when you execute MediaWiki from the web server. When you get this message you should check, if you can execute a newer PHP version on the shell by using a different command: That might e.g. be php5 or php56. If another version is available and - if so - under which name, depends on the setup of your server. If it does not work, ask your hoster; they will surely know.

MediaWiki проверит существующую схему и обновит её для работы с новым кодом, добавив при необходимости таблицы или новые поля.

What to do if php update.php fails to do anything, resulting in a quick pause and then return to command prompt
This can be caused by a malfunctioning extension or skin.


 * Check that all extensions and skins called for in LocalSettings.php are present
 * Check that extensions are using the correct registration method (wfLoadExtension vs. require_once)
 * Comment out extensions one by one in local settings until update.php works to find the one that is failing

Что делать, если возникает ошибка "ALTER command denied to user" (или похожая)
Может случиться так, что выполнение скрипта прерывается с сообщением, похожим на:

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

Это означает, что вы должны проверить настройки и  в своём файле  (в основном каталоге). Это имя пользователя и пароль, необходимые этому скрипту для получения доступа к базе данных.

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. If this is the case, just get rid of the $wgDBmwschema definition in LocalSettings.php.

Что делать, если возникает ошибка "unexpected T_STRING"
Individuals running update.php from the command line may encounter the following error:

 syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' \ in ~/maintenance/commandLine.inc on line 13

Эта ошибка возникает, когда update.php запускается из php4.

Individuals who have their site hosted by providers who provide both php4 and php5 should take the following steps:


 * 1) в командной строке, введите 'whereis php5'
 * 1) once you have discerned the location of the php5 path, list the contents of php5/bin directory
 * 1) once you've determined the name of the php executable (either php or php5), type in the entire path to execute update.php

Ниже приведён пример:

 $ whereis php5 $ ls -la /usr/local/php5/bin $ /usr/local/php5/bin/php update.php

Что делать, если возникает ошибка 'register_argc_argv is set to false'
Вам может встретиться ошибка:  Cannot get command line arguments, register_argc_argv is set to false


 * 1) Go to ~/maintenance. Either edit an existing 'php.ini' file, or create one.
 * 1) Добавьте строку:

 register_argc_argv=true


 * 1) Повторно запустите php update.php

Веб-браузер

 * Смотрите также 

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.


 * 1) Всегда делайте резервную копию перед запуском скриптов, работающих с базой данных.
 * 1) Navigate your webbrowser to  . For example, if your wiki is at , then navigate to.
 * 1) Выберите язык и нажмите продолжить.
 * 1) The existing installation should be detected. Follow the instructions on the screen to upgrade it. If asked for the "upgrade key", open your  file and look for the key assigned to.

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 webserver uses Rewrite Rules (most likely for 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.

Протестируйте обновление
Как только обновление завершится, просмотрите вики-сайт и проверьте основные моменты, — чтобы гарантировать, что всё по-прежнему работает так, как ожидается. В первую очередь, это:


 * просмотр страниц
 * редактирование страниц
 * загрузка файлов
 * посетите страницу Special:Version и проверьте, что версия отображается корректно.

Remove leftovers from old installations
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. 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.

Часто задаваемые вопросы


How hard is it to upgrade?
If the only file you have modified is, 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.

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

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  file.

Upgrading becomes difficult if you have modified our source code, and you don't want your changes to be overwritten. Tools such as diff, patch, Meld or WinMerge 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.

How do I upgrade from a really old version? In one step, or in several steps?
It depends: If you are upgrading from MediaWiki 1.4 or older, you should upgrade to MediaWiki 1.5 first. 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 ( needs to be set to true in your for this to work). Next, run update.php, and then set the option in LocalSettings.php to the encoding previously used by the wiki (e.g. windows-1252). This is basically how Wikipedia and other Wikimedia Foundation sites were upgraded from MediaWiki 1.4 to 1.5 – see the relevant settings file (warning: huge page!) and some related notes at Wikitech. You may need to upgrade to MediaWiki 1.4 before running the upgrade1.5 script. If you want to make a database dump (e.g. MySQL) of your Latin-1 wiki, make sure the type of the  field in the  table is , not  , to avoid character encoding issues.

If you are upgrading from MediaWiki 1.5 or newer, you can upgrade in one step, from your old version to the latest stable version. The vast majority of reports, as well as automated testing, indicate that doing it in one step works just fine. If you have trouble believing this, read this mailing list post. 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. You would have received these errors anyway, also if you had not skipped versions, but if you had each time done each single update. Only will you - when you skipped versions - get them all at the same time. This will make the upgrade more difficult, but do not forget that you did not have the trouble updating to the intermediate versions, which you skipped!

Сперва я должен сделать резервное копирование?
Короткий ответ: Да.

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.

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

Recovery is often complex. 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. A better outcome is if you can revert to your backup, and then report the bug against the corresponding MediaWiki project in the upgrade process which caused the corruption.

Can I keep my LocalSettings.php?
Yes, but you may have to make some minor changes. The format of is largely backwards compatible. Changes which break LocalSettings.php compatibility will be documented in the "configuration changes" section of the release notes.

Can my wiki stay online while it is upgrading?
Generally yes, however 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:


 * 1) Unpack the new version of MediaWiki into a new directory
 * 1) Prepare that new directory: copy your current LocalSettings.php from the old directory, copy any installed extensions and custom skins (if any). Check  setting in LocalSettings.php and if necessary copy logo file from the old directory to the new directory.
 * 1) In the release notes for the new version, see if any changes need to be made to LocalSettings.php.
 * 1) Place the database in read-only mode by inserting the following variable into LocalSettings.php in the old directory - users will see this message if they attempt an edit during the upgrade process:


 * 1) * This no longer works since MediaWiki 1.27, which also prevents running the update script. A workaround for versions since MediaWiki 1.27 can be found in . See also.
 * 1) Run the update script or the web updater in the new directory.
 * 1) Copy the images from the images sub-directory from the old directory to the new directory.
 * 1) Swap the old directory and the new directory.

Why upgrade?

 *  Subscribe to mediawiki-announce to be notified of new releases. 

Because it's usually easy enough, a single step from your version to latest and also via web.

Recent releases receive security fixes to keep your wiki and your host safe from vandals, while old releases don't (see ). That makes dozens good reasons to upgrade!

New major releases come with new features, which you might want to use: see the release notes for details. In case you need additional arguments to convince your bosses to let you upgrade from a pretty old version, here is a summary:


 * Since 1.5, edits can be previewed before saving also as diff.
 * Since 1.9, an undo button is available.
 * Since 1.12, patrolling on Special:NewPages is much easier.
 * Since 1.13, you can rename (move) files.
 * Since 1.14, you can fix double redirects automatically.
 * Since 1.16, is available.
 * If you have appropriate caching, since 1.17 optimizes pageload speeds a lot.
 * Since 1.17, category sorting makes sense! (especially for non-English letters); extended to 68 languages after.
 * Since and, users of all languages and genders are correctly addressed by the interface and logs (before 1.15, no gender at all).
 * In the skinning system was reworked making it easier to reuse parts of existing skins in your own skins.
 * Since 1.20, diffs are more readable.
 * In 1.21 and 1.23, email notifications become clearer and more predictable, making your wiki more effective.
 * Since 1.22, vandal fighting (patrolling) is less time-consuming.
 * In 1.24, password storage was improved to allow for better security.
 * Since 1.25, enhanced recent changes are available
 * In 1.26, the "ResourceLoader" mechanism was improved
 * In 1.27, the session management was reworked as well as the user authentication management completely modernized.
 * Since 1.29, the Action API was reworked and improved. Also user group assignments may now be done for a selectable period.

Also, in MediaWiki 1.18 we started bundling some vital extensions, like a better editor and anti-vandalism tools ConfirmEdit and Nuke; more have been added in later releases. 

См. также

 * Greg Sabino Mullane's Blog post provides some more detail about point release upgrades.
 * Project:Support desk if you need help or something went wrong
 * - if you don't have a successful backup
 * - if you don't have a successful backup
 * - if you don't have a successful backup
 * - if you don't have a successful backup
 * - if you don't have a successful backup