Ручное обновление Wiki

Материал из Wiki МИАЦ ВО
Перейти к навигации Перейти к поиску

Обзор

В первую очередь, Шаблон:MW stable branch svn/phase3/UPGRADE?view=markup прочтите текстовый файл UPGRADE, включённый в архив MediaWiki.

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

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

MediaWiki Шаблон:MW stable branch number требует:

PHP

  • PHP версии 5.0.x или выше
    Мы рекомендуем использовать PHP версии 5.1.x или 5.2.x.
    Обратите внимание, что PHP версии 5.0.x, работающий под определёнными 64-битными платформами, содержит ошибки, которые вызывают фундаментальные проблемы с MediaWiki. Если MediaWiki работает на x86_64 (AMD64, EMT64) или другой зависимой 64-битной платформе, требуется PHP версий 5.1.x или 5.2.x.

DBMS

  • MySQL версии 4.0.x или выше
    Версия MySQL 3.x не поддерживается начиная с версии 1.6.0 MediaWiki

или

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

Где-то внутри дистрибутивного архива (tarball), или среди файлов, полученных или экспортированных из SVN, есть ряд файлов с именами, набранными прописными литерами. Один из них содержит Шаблон:MW stable branch svn/phase3/RELEASE-NOTES?view=markup ПРИМЕЧАНИЯ К РЕЛИЗУ (RELEASE-NOTES). Теперь — самое время, чтобы открыть этот файл и узнать то, что изменилось в этой версии.

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

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

  • содержимое базы данных вики-проекта; в дополнение к резервной копии SQL-базы данных не повредит сделать и экспорт всех страниц в формате XML.
    • MySQL:
      • текстовый дамп: mysqldump --all-databases > file.txt
      • xml-дамп: mysqldump --all-databases --xml > file.xml
    • PostgreSQL:
      • output for pg_restore: pg_dump --create -Fc -i yourwiki > yourwiki.db.dump
  • изображения и другие медиа-файлы (находящиеся в каталоге images)
  • конфигурационные файлы, т. е. LocalSettings.php и AdminSettings.php (если есть)
  • программные файлы MediaWiki, включая все стили оформления и расширения, особенно если вы их изменяли.

См. более подробные инструкции в разделе Manual:Backing up a wiki/ru.

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

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

Если вы загрузили *.tar архив, распакуйте его (например, при помощи WinRAR) на том же сервере, где находится старая версия mediawiki. При распаковке tarball-пакета обычно создаётся новый каталог для новой версии вики и вы сможете скопировать новые файлы и каталоги в свой текущий вики-каталог. Вместо того, чтобы заменять существующие файлы после распаковки, можно сделать это в один проход:

$ tar xvfz mediawiki-1.14.0.tar.gz -C /path/to/your/wiki/ --strip-components=1

Для старых дистрибутивов Linux (как, например, RHEL/CentOS 4.x) используйте:

$ tar xvfz mediawiki-1.14.0.tar.gz -C /path/to/your/wiki/ --strip-path=1

Те, кто использует старую версию tar (например, GNU tar 1.13.x) не поддерживающую флаги --strip-components или --strip-path, могут распаковать архив без опции -C и затем рекурсивно скопировать содержимое последнего пакета в имеющуюся структуру папок вики, следующим образом:

$ tar xvfz mediawiki-1.14.0.tar.gz
$ cp -r mediawiki-1.14.0/* /path/to/your/wiki/

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

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

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

Если вы используете Subversion, экспортируйте файлы в новый (пустой) каталог. Замените все существующие файлы в вашей версии новыми файлами из версии 1.14, сохраняя структуру каталогов. Программный код теперь обновлён.

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

Замечание: убедитесь, что файл AdminSettings.php расположен в корневом вики-каталоге, а также проверьте правильность и актуальность указанных в нём параметров. Пользователю потребуются полные права (shell access) на базу данных.

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

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

Из командной строки, с использованием SSH, или иным аналогичным образом, перейдите в каталог maintenance и выполните сценарий обновления:

$ php update.php --aconf ../AdminSettings.php

(Примечание для простой установки в Windows (например, с XAMPP): Вы можете запустить update.php, просто щёлкнув по нему (двойным кликом) если ваши .php-файлы ассоциированы с PHP.exe (если нет, то открыв правым кликом контекстное меню для файла update.php, выберите «Открыть c помощью ...» (“Open With ...”) и найдите PHP.exe). Убедитесь, что ваше серверное приложение (например, Apache) и база данных (например, MySQL) запущены).

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

Что делать, если возникает ошибка "No superuser credentials"

Может случиться так, что выполнение скрипта прерывается с сообщением:

"No superuser credentials could be found. Please provide the details of a user with appropriate permissions to update the database. See AdminSettings.sample for more details"

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

Альтернатива 1: phpShell

Если прав на базу данных недостаточно или shell-доступ недоступен, попробуйте использовать phpShell, эмулирующий командную строку посредством PHP функций. Это может не сработать для инсталляций, размещённых на закрытых хостинг-площадках (locked-down hostings).

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

$ php update.php --quick

Возможно, вам придется использовать "php5" вместо "php", если установлены разные версии. При использовании phpshell, файлы commandLine.inc и LocalSettings.php возможно придётся отредактировать, так как иначе скрипт может не завершиться из-за того, что phpshell был получен с веб-сервера. Возможно, эту проблему удастся обойти, запустив вместо предыдущего следующий скрипт:

$ unset REQUEST_METHOD; php update.php --quick

Эта команда сбрасывает значение переменной окружения REQUEST_METHOD, что инициирует скрипт выхода, а затем запускает скрипт обновления.

Альтернатива 2: Перезапуск инсталлятора

Если у вас нет возможности работать с командной строкой — перезапустите веб-инсталлятор:

  1. Переименуйте LocalSettings.php в LocalSettings.old.php
  2. Выдайте веб-серверу права на запись в каталог config
  3. Убедитесь, что пользователь базы данных имеет полные права к ней
  4. С помощью браузера перейдите к своей вики и запустите инсталлятор
    Заполните поля формы теми же значениями, что вы вводили при установке предыдущей версии.
    Когда начнётся процесс установки — скрипт обнаружит существующие таблицы MediaWiki и обновит их схему.
    После завершения всех процедур будет сгенерирован новый файл LocalSettings.php.
  5. Удалите новый конфигурационный файл
  6. Переименуйте обратно LocalSettings.old.php в LocalSettings.php
  7. Восстановите прежние права доступа на каталог config

Обновите расширения

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

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

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

Посетите страницу Special:Version и проверьте, что версия отображается корректно.