MediaWiki/Обновление
Подробная инструкция на английском приведена на http://www.mediawiki.org/wiki/Manual:Upgrading
Для обновления вики семейства (фермы) см отдельную статью.
Вкратце
В общих чертах для обновления движка MediaWiki нужно:
- Сделать резервные копии БД и файлов
- Распаковать и заменить файлы
- Обновить структуру БД. Можно через веб-интерфейс по адресу http://site.name/w/mw-config/
Пошаговая инструкция
Предположим, что:
- имя текущего каталога с движком "w" (который может быть на самом деле ссылкой на другой каталог)
- имя каталога с новым движком w31 (который тоже может быть ссылкой на другой каталог)
Чтобы для посетителей сайта обновление прошло максимально быстро выполним некоторые подготовительные работы перед самим обновлением.
Предварительные работы, не затрагивающие работающий движок
- файлы новой версии распакуем во временный каталог (скажем w31) рядом с основным
- в него копируем настроечные файлы (по умолчанию он один: LocalSettings.php)
- добавим свои изменения в иные файлы (если вносили): темы оформления, languages/data/Names.php (ранее languages/Names.php) (межязыковые ссылки) и т.п.
- если использовалась своя тема оформления, то скопируем её
- копируем каталог /images. Если он слишком большой, то в каталоге нового движка можно сделать на него ссылку для проверки работоспособности, а затем, после окончательного перехода на этот движок перенести папку из старого каталога в новый - перенос происходит гораздо быстрее, чем копирование
- Если для установки и обновления расширений используем Composer, то копируем исполняемый файл в каталог нового движка (w31) и запускаем его обновление. Это обновит также и совместимые с ним расширения:
- Обновляем расширения, не входящие в базовую комплектацию и не обновлённые Composer. Скачиваем вручную новую версию, распаковываем и копируем её в каталог
extensions
.
Само обновление движка MediaWiki
- Переведём сайт в режим "только для чтения" указав в LocalSettings.php переменную (сообщение можно сделать любым):
$wgReadOnly = '<div style="color: red;"><big>Редактирование не будет сохранено! Upgrading MediaWiki</big></div>';
- Переименовываем каталог w в w.old, а w31 в w. Если w был ссылкой, то удаляем её и далаем новую:
- Обновим структуру БД, запустив скрипт:
- если конфигурационный файл лежит в другом месте, то указываем это:
- или используя инсталлятор через веб-интерфейс (sitename.ru/w/mw-config). В случае вики фермы, структуру БД нужно менять для каждой вики, каждый раз задавая нужный префикс таблиц. Так как браузер кэширует информацию инсталлятора, то для обновления каждой следующей БД нужно будет чистить кэш, либо менять имя каталога с дистрибутивом (например на w31-2 и т.д.). В Firefox очистить недавнюю историю (и кэш) можно Ctrl+Shift+Del.
- Переименовываем каталог w в w.old, а w31 в w. Если w был ссылкой, то удаляем её и далаем новую:
- Если в каталоге нового движка делали ссылку на
image
, то удаляем ссылку и переносим сам каталог
- Проверяем версию движка и расширений на странице Служебная:Версия.
Работа над ошибками
Пустая страница
- Проверим на самом ли деле нам возвращается пустая страница. В Firefox нажмём Ctrl + U для просмотра исходного кода страницы.
- Проверим работоспособность API движка. Выведем общую информацию о движке:
http://sitename.ru/w/api.php?action=query&meta=siteinfo&siprop=general|statistics
- Проверим журнал ошибок веб сервера для этого сайта.
Сбой в кодировке
Если после обновления со страниц исчез текст, а в списках статей остались только те, что содержат не кириллические символы, значит произошёл сбой в кодировке. В этом случае большинство таблиц нуждаются в перекодировке.
Не нуждаются в перекодировке следующие таблицы:
wiki_hitcounter wiki_msg_resource wiki_msg_resource_links wiki_searchindex
Команды SQL для обновления всех необходимых таблиц:
ALTER TABLE wiki_category CONVERT TO CHARACTER SET binary; ALTER TABLE wiki_categorylinks CONVERT TO CHARACTER SET binary; ALTER TABLE wiki_change_tag CONVERT TO CHARACTER SET binary; ALTER TABLE wiki_external_user CONVERT TO CHARACTER SET binary; ALTER TABLE wiki_externallinks CONVERT TO CHARACTER SET binary; ALTER TABLE wiki_filearchive CONVERT TO CHARACTER SET binary; ALTER TABLE wiki_image CONVERT TO CHARACTER SET binary; ALTER TABLE wiki_imagelinks CONVERT TO CHARACTER SET binary; ALTER TABLE wiki_interwiki CONVERT TO CHARACTER SET binary; ALTER TABLE wiki_ipblocks CONVERT TO CHARACTER SET binary; ALTER TABLE wiki_iwlinks CONVERT TO CHARACTER SET binary; ALTER TABLE wiki_job CONVERT TO CHARACTER SET binary; ALTER TABLE wiki_l10n_cache CONVERT TO CHARACTER SET binary; ALTER TABLE wiki_langlinks CONVERT TO CHARACTER SET binary; ALTER TABLE wiki_log_search CONVERT TO CHARACTER SET binary; ALTER TABLE wiki_logging CONVERT TO CHARACTER SET binary; ALTER TABLE wiki_module_deps CONVERT TO CHARACTER SET binary; ALTER TABLE wiki_objectcache CONVERT TO CHARACTER SET binary; ALTER TABLE wiki_oldimage CONVERT TO CHARACTER SET binary; ALTER TABLE wiki_page CONVERT TO CHARACTER SET binary; ALTER TABLE wiki_page_props CONVERT TO CHARACTER SET binary; ALTER TABLE wiki_page_restrictions CONVERT TO CHARACTER SET binary; ALTER TABLE wiki_pagelinks CONVERT TO CHARACTER SET binary; ALTER TABLE wiki_protected_titles CONVERT TO CHARACTER SET binary; ALTER TABLE wiki_querycache CONVERT TO CHARACTER SET binary; ALTER TABLE wiki_querycache_info CONVERT TO CHARACTER SET binary; ALTER TABLE wiki_querycachetwo CONVERT TO CHARACTER SET binary; ALTER TABLE wiki_recentchanges CONVERT TO CHARACTER SET binary; ALTER TABLE wiki_redirect CONVERT TO CHARACTER SET binary; ALTER TABLE wiki_revision CONVERT TO CHARACTER SET binary; ALTER TABLE wiki_site_stats CONVERT TO CHARACTER SET binary; ALTER TABLE wiki_tag_summary CONVERT TO CHARACTER SET binary; ALTER TABLE wiki_templatelinks CONVERT TO CHARACTER SET binary; ALTER TABLE wiki_text CONVERT TO CHARACTER SET binary; ALTER TABLE wiki_transcache CONVERT TO CHARACTER SET binary; ALTER TABLE wiki_updatelog CONVERT TO CHARACTER SET binary; ALTER TABLE wiki_uploadstash CONVERT TO CHARACTER SET binary; ALTER TABLE wiki_user CONVERT TO CHARACTER SET binary; ALTER TABLE wiki_user_former_groups CONVERT TO CHARACTER SET binary; ALTER TABLE wiki_user_groups CONVERT TO CHARACTER SET binary; ALTER TABLE wiki_user_newtalk CONVERT TO CHARACTER SET binary; ALTER TABLE wiki_user_properties CONVERT TO CHARACTER SET binary; ALTER TABLE wiki_valid_tag CONVERT TO CHARACTER SET binary;
ALTER TABLE wiki_watchlist CONVERT TO CHARACTER SET binary;Все таблицы MediaWiki для версии 1.27.х:
- wiki_archive
- wiki_category
- wiki_categorylinks
- wiki_change_tag
- wiki_external_user
- wiki_externallinks
- wiki_filearchive
- wiki_hitcounter
- wiki_image
- wiki_imagelinks
- wiki_interwiki
- wiki_ipblocks
- wiki_iwlinks
- wiki_job
- wiki_l10n_cache
- wiki_langlinks
- wiki_log_search
- wiki_logging
- wiki_module_deps
- wiki_msg_resource
- wiki_msg_resource_links
- wiki_objectcache
- wiki_oldimage
- wiki_page
- wiki_page_props
- wiki_page_restrictions
- wiki_pagelinks
- wiki_protected_titles
- wiki_querycache
- wiki_querycache_info
- wiki_querycachetwo
- wiki_recentchanges
- wiki_redirect
- wiki_revision
- wiki_searchindex
- wiki_site_stats
- wiki_tag_summary
- wiki_templatelinks
- wiki_text
- wiki_transcache
- wiki_updatelog
- wiki_uploadstash
- wiki_user
- wiki_user_former_groups
- wiki_user_groups
- wiki_user_newtalk
- wiki_user_properties
- wiki_valid_tag
- wiki_watchlist
mediawiki/maps: 5.3.0 installed, ~5 required
- Причина: скрипт обновления не понял синтаксис описания подверсий в файле composer.json. Параметр "~5" означает, что composer должен установить последнюю подверсию расширения Maps, выпущенную для версии 5.
- Решение: в файле composer.json указать явным образом требуемую версию. т.е. заменить строку:
- на:
- и запустить обновление ещё раз.
Сбой в обновлении Semantic MediaWiki
См. статью Семантика.
Дополнительные ссылки
Процесс обновления и решение возможных проблем: