Manual:Обновление

This page is a translated version of the page Manual:Upgrading and the translation is 100% complete.
Скачать установочный пакет

Стабильная версия (MediaWiki 1.38 )

Наследуемые версии (MediaWiki 1.37 )

Альфа-версия (MediaWiki 1.40 )

Дополнительная информация:

Обзор

Перенос файлов

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

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

Подготовка

В первую очередь, прочтите текстовый файл UPGRADE, включённый в архив MediaWiki.

  1. Проверьте соответствие требованиям
  2. Прочтите файл RELEASE-NOTES
  3. Прочтите файл UPGRADE
  4. Сделайте резервную копию существующих файлов и базы данных
  5. Распакуйте новые файлы
  6. Обновите расширения
  7. Запустите скрипт обновления для проверки базы данных
  8. Протестируйте обновление
  9. Удалите "хвосты" от старых инсталляций

Проверка требований

  Внимание: MediaWiki с 1.32 по 1.35.4, 1.36.2, 1.37.0 содержит проблему безопасности, которая позволяет непривилегированное редактирование произвольной страницы и выполнение произвольного JavaScript. Если вы используете одну из этих версий и не можете перейти на более новую версию, пожалуйста ознакомьтесь с Версия безопасности 2021-12/часто задаваемые вопросы для обходного пути.

MediaWiki версии 1.38 требует:

  • PHP 7.3.19/7.4.3+
  • Одно из следующего:
    • MariaDB 10.1.0+
    • MySQL 5.5.8+
    • PostgreSQL 9.4+
    • SQLite 3.8.0+

Начиная с версии 1.36, MediaWiki обязуется поддерживать обновления только с двух основных выпусков долгосрочной поддержки (LTS) (см. phab:T259771). Обновление более старых версий MediaWiki придется выполнять в несколько этапов. Это означает, что если вы хотите перейти на версию 1.36 с версии 1.23 или более ранней, вам придётся сначала обновить вики-версию 1.23 до 1.27 (или 1.35), а с 1.27 (или 1.35) вы сможете перейти на 1.36.

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

Более подробно об этом можно прочесть в Manual:Требования для установки и Совместимость .

Прочтите примечания к релизу

Где-то внутри дистрибутивного архива (tarball), или среди файлов, полученных или экспортированных из Git, есть ряд файлов с именами, набранными прописными литерами. Один из них содержит — RELEASE-NOTES (wiki). Теперь — самое время, чтобы открыть этот файл и узнать то, что изменилось в этом релизе. Вы также должны прочитать инструкции в файле UPGRADE.

Очистка списка задач

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

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

Полная инструкция: Руководство:Резервное копирование вики

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

  • содержимое базы данных вики-проекта (проверьте LocalSettings.php и убедитесь, что получили тексты в корректной кодировке); в дополнение к резервной копии базы данных не повредит сделать и экспорт всех страниц в формате XML.
  • MySQL, в т.ч. SQL-дамп и XML-дамп для использования с командой mysql:
mysqldump --user=wikidb_user --password=wikidb_userpassword wikidb > file.sql
mysqldump --user=wikidb_user --password=wikidb_userpassword wikidb --xml > file.xml
  • PostgreSQL, дамп базы данных для использования с командой pg_restore:
pg_dump --create -Fc wikidb > file.db.dump
  • SQLite, используя скрипт MediaWiki для создания резервной копии:
php wikifolder/maintenance/sqlite.php --backup-to file
  • изображения и другие медиафайлы (находящиеся в каталоге images, а также логотип /skins/common/images/wiki.png)
  • конфигурационные файлы, т.е. LocalSettings.php и .htaccess (если есть)
  • программные файлы MediaWiki, включая все стили оформления и расширения, особенно если вы их изменяли.

Распакуйте новые файлы

Использование пакета tarball

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

Вы должны поместить распакованный архив в новую и пустую папку на вашем сервере. Если вместо этого вы извлекаете новую версию непосредственно поверх старой версии, а не в новый каталог, вам следует следовать инструкциям, описанным в Сделайте резервную копию существующих файлов и базы данных: в противном случае, если вы вносили какие либо изменения, которые вы можете стереть, таким образом, что у вас не останется образцов для их повторного внесения. Извлечение архива поверх вашей активной копии MediaWiki также может оставить файлы из старой версии MediaWiki, которые могут помешать обновленному коду. Рекомендуется распаковать новые файлы в новый каталог, а затем применить настройки к новому каталогу (восстановление LocalSettings.php, папки с изображениями, расширений и других настроек, таких как пользовательские скины)

FTP или графический интерфейс

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

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

Файловый менеджер cPanel

cPanel - популярный интерфейс, предоставляемый многими веб-хостами. Этот метод эффективен, поскольку файлы распаковываются на самом сервере.

  • Перейдите в каталог, в котором находится папка вашей вики.
  • Загрузите файл mediawiki-1.xx.x.tar.gz. Возможно, вам придется нажать "Перезагрузить", чтобы увидеть его.
  • Извлеките файл mediawiki-1.xx.x.tar.gz. Перезагрузите снова.
  • Убедитесь, что папка mediawiki-1.xx.x присутствует.
  • Удалите файл tar.gz.
  • Скопируйте все необходимые скины, расширения, папки с изображениями, кастомизации и LocalSettings.php в новую папку. (Смотри ниже.)
  • Когда вы будете готовы запустить update.php, переименуйте свою старую папку вики и новую папку вики. (например, "w" становиться "w1.34" а затем "mediawiki1.35.0" становиться "w".) Этот шаг легко обратим, если у вас возникнут проблемы.

Командная строка

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

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

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

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

Другие файлы

После распаковки архива tarball вам следует скопировать или переместить некоторые файлы и папки из старого каталога установки в новый:

  • LocalSettings.php - содержит ваши старые настройки конфигурации.
  • Каталог images (или uploads в более старых версиях), который содержит все файлы, загруженные на вики, если вы не выбрали другой каталог загрузки и не изменили владельца и разрешения. find ./images -type d -exec chmod 755 {} \; и chgrp -R apache images (например, если ваш веб-пользователь — apache).
  • Некоторые расширения в каталоге extensions. Вы всегда должны получать обновленные расширения; не гарантируется, что старые расширения будут работать с более новой версией MediaWiki.
  • Если вы используете пользовательский логотип этот файл также необходимо восстановить из резервной копии. До версии 1.24 логотип обычно находился в skins/common/images/. После версии 1.24 логотип обычно находится в каталоге resources/assets/ или images/, если вы решили его использовать. Затем добавьте в LocalSettings.php, например $wgLogo = "$wgScriptPath/images/logo.png";
  • For 1.35 you may need to restore the logos from wgLogos . Then add to LocalSettings.php e.g. $wgLogos = [ '1x' => "path/to/1x_version.png", '2x' => "path/to/2x_version.png", 'svg' => "path/to/svg_version.svg" ];
  • Пользовательское оформление в skins каталоге.
  • Любые изменения, внесенные в старые установочные файлы или расширений.
  • Любой файл .htaccess (если вы используете Apache и вы определили какие-либо правила в них).

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

Использование Git

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

Вам также потребуется установить некоторые внешние библиотеки PHP с помощью Composer или предоставленной коллекции, поддерживаемой для вики-фермы Викимедиа. Дополнительные сведения об установке и обновлении внешних библиотек можно найти в документация по загрузке Git.

Использование патчей

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

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

Файлы, оставление которых может привести к ошибкам

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

Версия MediaWiki:
1.18

Если вы не используете профилирование, но есть файл StartProfiler.php в корневой папке MediaWiki, вы можете получить ошибки, относящиеся к /includes/Profiler.php. Удаление или переименование файла StartProfiler.php устранит эту ошибку. Файл StartProfiler.sample, также находящийся в корневой папке MediaWiki, может служить шаблоном, если вы в будущем включите профилирование.

Версия MediaWiki:
1.23

MediaWiki 1.23 не поддерживает для скинов механизм автообнаружения основных файлов его файлов. После обновления до этой версии вы должны убедиться, что старые файлы Chick.php, Nostalgia.php, Simple.php и Standard.php непосредственно в каталоге skins/, а также соответствующие подпапки внутри каталога skins/ были удалены. MediaWiki будет регистрировать предупреждения, если какие-либо из них все еще будут найдены, чтобы помочь вам вспомнить. (Вам также потребуется настроить любые пользовательские скины, чтобы они следовали аналогичному соглашению.) Подробнее см. Manual:Skin autodiscovery .

Версия MediaWiki:
1.24

MediaWiki 1.24 изменяет пути к файлам основного скина. После обновления до этой версии вы должны убедиться, что старые файлы CologneBlue.php, Modern.php, MonoBook.php и Vector.php непосредственно в каталоге skins/ больше не присутствуют. Подробнее см. в разделе Manual:Skin autodiscovery .

Обновление расширений

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

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

Extension Distributor хорошо подходит для большинства людей, которым нужен моментальный снимок расширений, которые будут работать с их поддерживаемыми версиями MediaWiki.

Если вам нужно много расширений, то скачать из Git, вероятно, лучший вариант. Если у вас нет Git, но вы хотите обновить множество расширений, вы можете использовать mwExtUpgrader.

Откорректируйте ваш LocalSettings.php

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

Регистрация тем оформления

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

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

wfLoadSkin( 'Vector' );
wfLoadSkin( 'MonoBook' );
wfLoadSkin( 'Modern' );
wfLoadSkin( 'CologneBlue' );

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

Регистрация расширений

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

До этого ваш LocalSettings.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";

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

wfLoadExtension( 'Cite' );
wfLoadExtension( 'Gadgets' );
wfLoadExtension( 'ImageMap' );
wfLoadExtension( 'InputBox' );
wfLoadExtension( 'Nuke' );
wfLoadExtension( 'ParserFunctions' );
wfLoadExtension( 'Poem' );
wfLoadExtension( 'SyntaxHighlight_GeSHi' );
wfLoadExtension( 'WikiEditor' );

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

Другие переменные

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

Запустите скрипт обновления

Вы можете обновить базу данных MediaWiki двумя способами: либо из командной строки, либо из веб-браузера. Если у вас есть доступ к серверу через оболочку, рекомендуется выполнить обновление из командной строки, поскольку это снижает риск прерывания процесса обновления из-за тайм-аута или сброса соединения.

Скрипт также попытается загрузить любые отсутствующие зависимости, которые нужны MediaWiki.

Командная строка (shell)

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

$ php update.php

Если вы столкнулись с ошибкой на сервере под управлением Linux, попробуйте повторить ту же самую команду как root (sudo php update.php). Примечание для простой установки в Windows (например, с XAMPP ): Сначала убедитесь, что ваше серверное приложение (например, Apache) и база данных (например, MySQL) запущены. Затем запустите update.php: щелкните его правой кнопкой мыши, выберите «Открыть с помощью» и перейдите к PHP.exe. Полученное окно командной строки, скорее всего, автоматически закроется после завершения обновления схемы.

Вы можете увидеть сообщение о том, что ваша версия PHP слишком старая и что MediaWiki нужна более новая версия. После этого сообщения обновление прерывается. Причина этой ошибки в том, что командная строка может использовать другую версию PHP, чем та, которая у вас есть при запуске MediaWiki с веб-сервера. Когда вы получаете это сообщение, вы должны проверить, можете ли вы выполнить более новую версию PHP в оболочке с помощью другой команды: это может быть, например php5 или php56. Доступна ли другая версия, и если да, то под каким именем, зависит от настроек вашего сервера. Если не получится, спросите у своего хостера; он обязательно должен знать.

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

Если вы используете общую базу данных, вы должны передать параметр --doshared, если хотите, чтобы общие таблицы обновлялись. В противном случае они не будут затронуты сценарием обновления.

Что делать, если php update.php ничего не делает, что приводит к быстрой паузе, а затем возврату в командную строку

Это может быть вызвано неисправностью расширения или скина.

  • Убедитесь, что все расширения и скины, вызываемые в LocalSettings.php, присутствуют.
  • Убедитесь, что расширения используют правильный метод регистрации (wfLoadExtension vs. require_once)
  • Закомментируйте первую половину расширений в LocalSettings.php. Если это заставит update.php работать, раскомментируйте половину из половины (то есть 1/4 расширений). Если это НЕ приводит к тому, что update.php заработает, раскомментируйте первую половину, но закомментируйте вторую половину, а затем закомментируйте половину второй половины и т. д. Повторяйте, пока update.php не зараработает, чтобы найти то, что не работает.

Что делать, если возникает ошибка "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 

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

В некоторых случаях кажется, что старая переменная $wgDBmwschema (для Postgres) читается для обновления имени таблицы вместо $wgDBname, даже когда используется MySQL. Если это так, просто избавьтесь от определения $wgDBmwschema в LocalSettings.php.

Что делать, если возникает ошибка "unexpected T_STRING"

Лица запускающие update.php из командной строки, могут столкнуться со следующей ошибкой:

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.

Лица, чей сайт размещен у провайдеров, предоставляющих как php4, так и php5, должны предпринять следующие шаги:

  1. в командной строке, введите 'whereis php5'
  2. как только вы определили расположение пути php5, перечислите содержимое каталога php5/bin
  3. после того, как вы определили имя исполняемого файла PHP (PHP либо php5), введите полный путь для выполнения update.php

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

$ command -v 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. Перейти в ~/maintenance. Либо отредактируйте существующий файл 'php.ini', либо создайте его.
  2. Добавьте строку:
register_argc_argv=true
  1. Повторно запустите php update.php

Веб-браузер

Версия MediaWiki:
1.17
Смотрите также update.php

Если ваша база данных уже большая и активно используется, вам не следует использовать веб-обновление, например. потому что процесс обновления истечет по тайм-ауту, когда будет достигнуто maximum_execution_time. В этом случае вы должны использовать update.php из интерфейса командной строки (не из Интернета). Что именно является слишком большим, зависит от вашего сервера (например, от его производительности, нагрузки и от того, как долго максимальное время выполнения PHP позволяет запускать скрипт). Если ваша вики слишком велика для средства веб-обновления, а ваш хостинг-провайдер не разрешает доступ к командной строке, вам необходимо перенести свою вики на другую учетную запись хостинга, желательно на ту, у которой есть доступ к оболочке.

  1. Всегда делайте резервную копию перед запуском скриптов, работающих с базой данных.
  2. Перейдите в веб-браузере к /mw-config/. Например, если ваша вики http://example.org/w/index.php, перейдите на http://example.org/w/mw-config/.
  3. Выберите язык и нажмите продолжить.
  4. Существующая установка должна обнаружиться. Следуйте инструкциям на экране, чтобы обновить её.
    Если вас попросят ввести «upgrade key», откройте файл LocalSettings.php и найдите ключ, назначенный $wgUpgradeKey .

Может случиться так, что веб-обновление не сработает: вместо начального экрана выбора языка вы можете увидеть пустую вики-страницу, возможно, с каким-то сообщением об ошибке. В этом случае, скорее всего, ваш веб-сервер использует правила перезаписи (скорее всего, для коротких URL-адресов), которые показывают вам не средство обновления mw-config/, а вики-страницу Mw-config/, с большой буквы "М". В этом случае переименуйте файл .htaccess на время обновления. После этого вы сможете получить доступ к веб-обновлению.

  Внимание: Если вы используете этот метод, обязательно измените имя файла .htaccess обратно после запуска скрипта обновления! В противном случае короткие URL-адреса и, возможно, другие вещи будут сломаны!

Протестируйте обновление

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

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

Удаление остатков от старых инсталляций

Если вы скопировали предыдущую установку в другую папку на сервере, обязательно удалите ее или сделайте ее полностью недоступной из Интернета. Очень важно не оставлять старые установки доступными из Интернета, так как это полностью сводит на нет цель обновления и оставляет ваш сервер открытым для атак.

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


Как сложно сделать обновление?

Если единственный файл, который вы изменили, это LocalSettings.php , и вы обновляете версию 1.5 или более позднюю, процесс будет весьма простым. Объем затраченной человеческой работы составит всего несколько минут. Изменения схемы базы данных займут время, пропорциональное размеру вашей базы данных — для вики с миллионами страниц вероятно час, но для более типичной, размером в несколько тысяч страниц, обычно займёт секунды.

Незначительные обновления в рамках одной и той же основной версии, скажем, с 1.37.0 до 1.37.6, вообще не требуют никаких изменений схемы базы данных. Вы можете просто обновить файлы. База данных не нуждается в обновлении, поэтому нет необходимости запускать скрипт обновления.

Обновление с версии 1.4 или более ранней потенциально сложно, поскольку поддержка наборов символов, отличных от UTF-8, была прекращена, а схема хранения большого объема текста изменилась. Прочтите соответствующий раздел в файле UPGRADE.

Обновление становится трудным, если вы изменили наш исходный код и не хотите, чтобы ваши изменения были перезаписаны. Могут быть полезны такие инструменты, как diff, patch, Meld или WinMerge. Также возможны проблемы, если вы используете неподдерживаемые расширения. Обновляйте свои расширения одновременно с обновлением MediaWiki.

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

Вместо того, чтобы каждый раз исправлять «глобальные» файлы CSS и JS (JavaScript), вы можете просто добавить код на свои страницы MediaWiki:Common.js и MediaWiki:Common.css. Поскольку они являются частью базы данных, которая будет повторно использоваться при обновлении, вам больше не придется исправлять основные файлы MediaWiki.

Как мне обновиться с совсем старой версии? В один шаг или в несколько шагов?

Это зависит от: Если вы выполняете обновление с MediaWiki 1.4 или старше, вам следует сначала выполнить обновление до MediaWiki 1.5. Если вы выполняете обновление с вики Latin-1, используйте upgrade1_5.php (находится в MediaWiki 1.5), чтобы преобразовать соответствующие части базы данных в UTF-8 (для этого необходимо установить $wgUseLatin1 в значение true в LocalSettings.php ). Затем запустите update.php, а затем установите параметр $wgLegacyEncoding в LocalSettings.php на кодировку, ранее использовавшуюся вики (например, windows-1252). По сути, таким образом Википедия и другие сайты Фонда Викимедиа были обновлены с MediaWiki 1.4 до 1.5 — см. страницу настроек для enwiki и некоторые примечания, связанные с Wikitech. Возможно, вам придется обновиться до MediaWiki 1.4 перед запуском скрипта обновления 1.5. Если вы хотите сделать дамп базы данных (например, MySQL) вашей вики Latin-1, убедитесь, что тип поля old_text в таблице text равен mediumblob, а не mediumtext, чтобы избежать проблем с кодировкой символов.

Если вы обновляете MediaWiki 1.5 или новее до 1.35, вы можете выполнить обновление за один шаг, от старой версии до последней стабильной версии. Подавляющее большинство отчетов, а также автоматизированное тестирование показывают, что одношаговость работает просто отлично. Если вам трудно поверить в это, прочитайте это сообщение из рассылки. Однако обратите внимание, что при обновлении со старых версий вероятность того, что вы столкнетесь с ошибками PHP, больше, чем при обновлении с версии, непосредственно предшествующей новой версии. Вы бы все равно получили эти ошибки, если бы не пропускали версии, но ошибки были бы связаны с каждым отдельным обновлением. Вместо этого, если вы обновите сразу несколько версий, вы получите один и тот же набор ошибок одновременно. Это усложнит обновление, но не забывайте, что у вас не должно быть проблем с обновлением до промежуточных версий, которые вы пропустили!

Если вы выполняете обновление до версии MediaWiki 1.36 или более поздней, будут поддерживаться только обновления из двух последних версий с долгосрочной поддержкой(LTS) (phab:T259771). Это будет означать, что для очень старых версий вы сначала обновляетесь до MediaWiki 1.35, а затем до 1.36.

Сперва я должен сделать резервное копирование?

Короткий ответ: Да.

Длинный ответ: это зависит от: а) насколько вы цените свои данные, б) насколько сложно создать резервную копию и в) насколько вы уверены в обслуживании и администрировании MySQL.

Сбой обновления может оставить вашу базу данных в несогласованном состоянии между двумя версиями. Во время обновления может произойти ошибка PHP или MySQL, в результате чего ваша база данных будет частично обновлена. В таких ситуациях может быть возможно как-то решить эту проблему с большим количеством действий вручную. Тем не менее, будет намного проще просто создать резервную копию базы данных перед запуском update.php и продолжить с этим. В противном случае у вас могут быть часы - бесполезной - работы.

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

Могу я оставить свой LocalSettings.php?

Да, но вам, возможно, придется внести некоторые незначительные изменения. У формат LocalSettings.php в значительная степень обратной совместимости. Изменения, которые нарушают совместимость LocalSettings.php будут задокументированы в разделе "configuration changes" примечания к выпуску.

Может ли моя вики оставаться доступной во время обновления?

Обычно да, однако Git может временно (на несколько секунд) оборвать доступ.

Если вы выполняете обновление между младшими выпусками MediaWiki, все, что вам нужно сделать, это обновить исходные файлы.

Примечание: далее предполагается, что у вас есть доступ к командной строке. Если вы выполняете обновление между основными выпусками MediaWiki, рекомендуемая процедура выглядит следующим образом:

  1. Распакуйте новую версию MediaWiki в новый каталог
  2. Подготовьте новый каталог: скопируйте текущий LocalSettings.php из старого каталога, скопируйте все установленные расширения и пользовательские скины (если есть). Проверьте настройки $wgLogo и $wgLogos в LocalSettings.php и при необходимости скопируйте файл логотипа из старого каталога в новый каталог.
  3. В примечании к выпуску новой версии посмотрите, нужно ли внести какие-либо изменения в LocalSettings.php.
  4. В старом каталоге отредактируйте LocalSettings.php и вставьте следующий код. Это поместит базу данных в режим только для чтения для обычной вики-активности, не ограничивая ваши собственные действия по обновлению. Пользователи увидят сообщение, если попытаются внести изменения в процессе обновления:
    $adminTask = ( PHP_SAPI === 'cli' || defined( 'MEDIAWIKI_INSTALL' ) );
    $wgReadOnly = $adminTask ? false : 'Upgrading to MediaWiki 1.38.4';
  5. Запустите скрипт обновления или обновление через веб в новом каталоге.
  6. Скопируйте изображения из подкаталога images старого каталога в новый каталог.
  7. Поменять местами старый каталог и новый каталог. (Это снова сделает базу данных доступной для записи, потому что $wgReadOnly был установлен только в LocalSettings.php старого каталога.)

Зачем обновлять?

Подпишитесь на mediawiki-announce, чтобы получать уведомления о новых выпусках.

Потому что это обычно достаточно просто, дин шаг от вашей версии до последней , а также через веб.

Последние выпуски получают исправления безопасности, чтобы обезопасить вашу вики и ваш хост от вандалов, в то время как старые выпуски этого не делают (см. Жизненный цикл версий ). Это даёт десяток веских причин для обновления!

Новые основные выпуски содержат новые функции, которые вы, возможно, захотите использовать: подробности см. в примечаниях к выпуску. Если вам нужны дополнительные аргументы, чтобы убедить руководство позволить вам обновить довольно старую версию, вот они в кратце:

  • Начиная с 1.5 , изменения можно предварительно просмотреть перед сохранением как и различия.
  • Начиная с 1.9 , доступна кнопка отмены.
  • Начиная с 1.12 , патрулирование на Special:NewPages стало проще.
  • Начиная с 1.13 , вы может переименовывать (перемещать) файлы.
  • Начиная с 1.14 , вы можете исправить двойное перенаправление автоматически.
  • Начиная с 1.16 , доступно InstantCommons .
  • Если у вас есть соответствующее кэширование, начиная с версии 1.17 ResourceLoader значительно оптимизируется скорость загрузки страниц.
  • Начиная с 1.17, сортировка по категориям имеет смысл! (особенно для неанглийских букв); расширено до 68 языков после 1.21 .
  • Начиная с 1.18 и 1.19 , интерфейс и журналы правильно обращаются к пользователям всех языков и полов (до версии 1.15 вообще не было пола).
  • В 1.19 система скинов была переработана, что упростило повторное использование частей существующих скинов в ваших собственных скинах.
  • Начиная с1.20, различия более наглядны.
  • В 1.21 и 1.23, уведомления по электронной почте становятся более четкими и предсказуемыми, что делает вашу вики более эффективной.
  • Начиная с 1.22, борьба с вандалами (патрулирование) занимает меньше времени.
  • В 1.24 хранилище паролей было улучшено для повышения безопасности.
  • Начиная с 1.25, доступны расширенные последние изменения
  • В 1.26 улучшен механизм "ResourceLoader"
  • В 1.27 было переработано управление сессиями, а также полностью модернизировано управление аутентификацией пользователей. InstantCommons больше не требует локальных файлов.
  • Начиная с 1.28 , улучшен кеш для отображения HTML на страницах статей.
  • Начиная с 1.29 API действий был переработан и улучшен. Кроме того, включать пользователей в группы теперь можно на определенный период времени. Разрешается блокировать диапазон IP-адресов.
  • Начиная с 1.30 , заблокированные пользователи не могут изменить свой адрес электронной почты. Добавлена возможность поиска вкладов в диапазоне IP-адресов в Special:Contributions.
  • Начиная с 1.31 , некоторые расширения теперь являются частью ядра, например, OATHAuth , MultimediaViewer , Nuke . Был введен Тема оформления:Timeless . Добавлено ограничение скорости редактирования в 90 правок в минуту, для всех пользователей по умолчанию.
  • Начиная с 1.32 , MediaWiki поддерживает более 350 языков.
  • Начиная с 1.33 , MediaWiki поддерживает «частичные блоки», когда IP-адреса и учетные записи могут быть ограничены в редактировании определенных страниц или пространств имен.
  • Начиная с 1.34 , дополнительные расширения являются частью ядра: Scribunto (для модулей Lua), TextExtracts , PageImages .
  • Начиная с 1.35 (стабильного выпуска с долгосрочной поддержкой(LTS)), VisualEditor является частью ядра. Функция «наблюдать» была расширена возможностью указать дату истечения срока наблюдения.

Кроме того, в MediaWiki 1.18 мы начали объединять некоторые жизненно важные расширения, такие как улучшенный редактор и средства защиты от вандализма ConfirmEdit и Nuke; больше будет добавлено в более поздних версиях.

См. также