Юрий Бондаренко
Гуру 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