Ручное обновление Wiki
Содержание
Обзор
В первую очередь, Шаблон:MW stable branch svn/phase3/UPGRADE?view=markup прочтите текстовый файл UPGRADE, включённый в архив MediaWiki.
- Проверьте соответствие требованиям
- Прочтите примечания к релизу (release notes)
- Сделайте резервную копию существующих файлов и базы данных
- Распакуйте новые файлы
- Запустите скрипт обновления для проверки базы данных
- Обновите расширения
- Протестируйте обновление
Проверка требований
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
или
- PostgreSQL версии 8.1 или выше
- Вам также потребуются модули tsearch2 и plpgsql, если используется Postgres 8.1 или 8.2
- см. также руководство по обновлению Postgres
- Вам также потребуются модули tsearch2 и plpgsql, если используется Postgres 8.1 или 8.2
Прочтите примечания к релизу
Где-то внутри дистрибутивного архива (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
- MySQL:
- изображения и другие медиа-файлы (находящиеся в каталоге 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: Перезапуск инсталлятора
Если у вас нет возможности работать с командной строкой — перезапустите веб-инсталлятор:
- Переименуйте LocalSettings.php в LocalSettings.old.php
- Выдайте веб-серверу права на запись в каталог config
- Убедитесь, что пользователь базы данных имеет полные права к ней
- С помощью браузера перейдите к своей вики и запустите инсталлятор
- Заполните поля формы теми же значениями, что вы вводили при установке предыдущей версии.
- Когда начнётся процесс установки — скрипт обнаружит существующие таблицы MediaWiki и обновит их схему.
- После завершения всех процедур будет сгенерирован новый файл LocalSettings.php.
- Удалите новый конфигурационный файл
- Переименуйте обратно LocalSettings.old.php в LocalSettings.php
- Восстановите прежние права доступа на каталог config
Обновите расширения
Некоторые расширения были обновлены, чтобы работать с новой версией MediaWiki. Убедитесь, что обновили такие расширения до их последних версий. Вполне возможно, что вам потребуется вручную выполнить обновления некоторых расширений.
Протестируйте обновление
Как только обновление завершится, просмотрите вики-сайт и проверьте основные моменты, такие как просмотр и редактирования страниц, — чтобы гарантировать, что всё по-прежнему работает так, как ожидается.
Посетите страницу Special:Version и проверьте, что версия отображается корректно.