update.sh

Юрий Бондаренко

Гуру MediaWiki
Регистрация
26.05.2015
Сообщения
284
Реакции
72
Простой скрипт для обновления вики, подходит для шаред-хостинга timeweb (сам хостинг говно). Да, скрипт можно улучшить и прочее бла-бла-бла.

Код:
#!/bin/bash

#################################################
echo ''
echo '====================='
echo '| Обновляем вики... |'
echo '====================='

echo ''
echo '=============================================='
echo '| Переводим вики в режим "Только для чтения" |'
echo '=============================================='
# mkdir upd
touch upd/ReadOnly.php
echo '<? $wgReadOnly = "Wiki updating..."; ' > upd/ReadOnly.php

##########################
echo ''
echo '==================================='
echo '| Бекап базы данных до обновления |'
echo '==================================='
mysqldump -h localhost -u username -ppassword database | gzip > upd/before-$(date '+%Y-%m-%d')-db.sql.gz

###################
echo ''
echo '=============================='
echo '| Бекап файлов до обновления |'
echo '=============================='
tar zcvhf upd/before-$(date '+%Y-%m-%d')-files.tgz w > /dev/null

########################
echo ''
echo '======================='
echo '| Скачиваем медиавики |'
echo '======================='
mkdir upd/w
cd upd/w

wget https://releases.wikimedia.org/mediawiki/1.27/mediawiki-1.27.0.tar.gz
tar xvzf mediawiki-1.27.0.tar.gz --strip-components=1 -C . > /dev/null

cd ..
cd ..

#########################
echo ''
echo '========================'
echo '| Скачиваем расширения |'
echo '========================'
cd upd/w/extensions

echo '== Admin Links =='
git clone https://gerrit.wikimedia.org/r/p/mediawiki/extensions/AdminLinks.git
rm -Rf AdminLinks/.git

echo '== Category Tree =='
git clone https://gerrit.wikimedia.org/r/p/mediawiki/extensions/CategoryTree.git
rm -Rf CategoryTree/.git

echo '== Scribunto =='
git clone https://gerrit.wikimedia.org/r/p/mediawiki/extensions/Scribunto.git
rm -Rf Scribunto/.git

echo '== WikiForum =='
git clone https://gerrit.wikimedia.org/r/p/mediawiki/extensions/WikiForum.git
rm -Rf WikiForum/.git

#########################################
# возвращаемся в основной рабочий каталог
cd ..
cd ..
cd ..

########################################
echo ''
echo '====================================='
echo '| Копируем новую вики вместо старой |'
echo '====================================='
cp -r -u upd/w/* w

#######################################
echo ''
echo '================================'
echo '| Удаляем временную папку вики |'
echo '================================'
rm -Rf upd/w

################################
echo ''
echo '======================'
echo '| Обновляем composer |'
echo '======================'
/opt/php56/bin/php ./composer.phar -d=w update

#######################################
echo ''
echo '==========================================='
echo '| Снова делаем бекап уже обновленной вики |'
echo '==========================================='
mysqldump -h localhost -u username -ppassword database | gzip > upd/after-$(date '+%Y-%m-%d')-db.sql.gz
tar zcvhf upd/after-$(date '+%Y-%m-%d')-files.tgz w > /dev/null

#########################################
echo ''
echo '======================================'
echo '| Возвращаем вики в нормальный режим |'
echo '======================================'
echo '<? //$wgReadOnly = "";' > upd/ReadOnly.php

########################################
echo ''
echo '==================================='
echo '| Запускам скрипт обновления вики |'
echo '==================================='
/opt/php56/bin/php w/maintenance/update.php

###################
echo ''
echo '============================='
echo '| Обновление вики завершено |'
echo '| Нажмите любую клавишу...  |'
echo '============================='
read -s -n 1
 
Было бы хорошо если версию не надо было б менять. У меня подобное, но тоже номер версии ручками правится :(
 
Ну да, это и обидно :)
 
Назад
Верх