MediaWiki/Обновление движка вики фермы
Обновление (upgrade) движка MediaWiki как правило дело не сложное и хорошо описано в официальной документации как на русском языке, так и более подробно на английском. Краткую пошаговую иструкцию смотрите в специальной статье на СисадминВики.
Обновление вики фермы может быть делом более кропотливым, но принцип остаётся таким же как и для обновления одиночной вики. Единственное, что добавляется - это для каждого раздела (каждой вики) необходимо запустить скрипт обновления базы данных.
Если же разница версий велика и нужно автоматизировать некоторые процессы, то понадобиться соответствующий скрипт. Ниже приведён пример такого сприпта. Код upgrade_wiki.sh выполнит следующее:
- создаст ссылки на новые каталоги,
- запишет результаты обновления в журналы
- $log - подробный журнал обновления каждой вики
- $log_brief - краткий журнал для отслеживания какие вики и как быстро были уже обновлены
# Upgrade wiki to 1.19.2 # Check out for the new version at http://sysadminwiki.ru/wiki/MediaWiki._Обновление_движка # 2012.11.28 Pavel Malahov if [ $# -ne 0 ] then dir=/home/user/public_html/ru log=$dir/upgrade.log log_brief=$dir/upgrade_brief.log date_start=`date "+%Y-%m-%d% %H:%M:%S"` dir_wiki=$dir/w-$1 dir_mnt=$dir_wiki/maintenance cmd_upd="php5 update.php --conf $dir/w-$1/LocalSettings.php" echo "Upgrade: $1 " >> $log_brief echo " Start: $date_start " >> $log_brief echo "-------------------------------------------------" >> $log echo "=== Upgrade wiki: $1 " >> $log echo "=== Date: $date_start " >> $log echo "=== Wiki dir: $dir_wiki " >> $log echo "=== Update command: $cmd_upd " >> $log echo "-------------------------------------------------" >> $log echo "--- Enter wiki dir ---" >> $log cd $dir_wiki echo "--- Create links to new directories ---" >> $log ln -s ../../w/resources/ >> $log ln -s ../../w/mw-config/ >> $log ln -s ../../w/tests >> $log echo "--- Update database ---" >> $log cd $dir_mnt $cmd_upd >> $log date_end=`date "+%Y-%m-%d% %H:%M:%S"` echo "-------------------------------------------------" >> $log echo "=== Start time: $date_start " >> $log echo "=== Finish time: $date_end " >> $log echo "=== Done with wiki: $1 " >> $log echo "-------------------------------------------------" >> $log echo " Done: $date_end " >> $log_brief echo "" >> $log_brief else echo " Wiki upgrade script." echo " Usage: upgrade_wiki.sh <wiki-name>" fi
Перед запуском необходимо определить переменную $dir
Параметром скрипту нужно передать суффикс каталога, где лежит сайт. Например, если сайт находится в каталоге /home/user/public_html/ru/w-site1, то скрипт нужно запускать так:
$ upgrade_wiki.sh site1