Терминальные решения
Администратор MediaWiki на терминале сервера может выполнять задачи обслуживания, используя Сценарии обслуживания framework . Новые версии Mediawiki запускают все стандартные сценарии в задачах, описанных ниже, но в старых версиях есть некоторые ошибки или не все сценарии современных: проверьте номер версии на grep wgVersion includes/DefaultSettings.php
.
Примечание: все цитируемые (ниже) скрипты также имеют опцию --help
, например,
php maintenance/importImages.php --help
Исходная папка с изображениями
Пользователи загружают файлы через страницу Special: Upload; администраторы могут настраивать разрешенные типы файлов через белый список расширений. После загрузки файлы сохраняются в папке в файловой системе, а миниатюры - в специальном каталоге для большого пальца.
Папка Mediawiki images
может быть заархивирована с помощью команды zip -r ~/Mediafiles.zip images
, но этот zip не так хорош:
есть много ненужных файлов: «удаленные файлы» и «старые файлы» (не текущий ) с именами файлов как 20160627184943!MyFig.png
и миниатюрами как MyFig.png/120px-MyFig.jpg
.
для обмена данными или долгосрочного сохранения porpurses, это недопустимо ... Формат папки ugly images/?/??/*
не подходит, как обычно, "все файлы изображений в одной папке".
Экспорт / импорт изображений
Для «экспорта и импорта» всех текущих изображений в одной папке на терминале сервера MediaWiki существует пошаговая отдельная процедура.
Шаг 1: генерирует дампы изображений, используя dumpUploads (с опциями --local
или --shared
, когда необходимо сохранение), который создает txt список всех имен файлов изображений, используемых.
mkdir /tmp/workingBackupMediaFiles
php maintenance/dumpUploads.php \
| sed 's~mwstore://local-backend/local-public~./images~' \
| xargs cp -t /tmp/workingBackupMediaFiles
zip -r ~/Mediafiles.zip /tmp/workingBackupMediaFiles
rm -r /tmp/workingBackupMediaFiles
Команда приводит к стандартному zip-файлу вашей резервной копии образа, Mediafiles.zip
в корневом каталоге пользователя (~/
).
ПРИМЕЧАНИЕ: если вы не беспокоитесь о некрасивой структуре папок , более прямой путь -
php maintenance/dumpUploads.php \
| sed 's~mwstore://local-backend/local-public~./images~' \
| zip ~/Mediafiles.zip -@
в соответствии с версией Mediawiki, опция --base=./
будет работать нормально, и вы можете удалить команду sed
канала.
Шаг 2: нужна резервная копия? установка копии изображений? ... вам нужно только Mediafiles.zip
и Mediawiki с установленным без содержимого ... Если в Wiki есть содержимое, проверьте проблемы с конфликтами имен файлов (!). Другая проблема - это конфигурация форматов файлов и разрешений, которые должны быть такими же или более широкими в новой вики, см. Руководство: настройка загрузки файлов .
Шаг 3: восстановить дампы ( для новой Wiki ) с помощью инструментов обслуживания. Предположим, что вы использовали шаг 1 для экспорта и сохранения в zip-файле,
unzip ~/Mediafiles.zip -d /tmp/workingBackupMediaFiles
php maintenance/importImages.php /tmp/workingBackupMediaFiles
rm -r /tmp/workingBackupMediaFiles
php maintenance/update.php
php maintenance/rebuildall.php
Вот и все. Проверяйте, просматривая в вашей новой вики Special: NewFiles .
Полный экспорт или сохранение
Для экспорта "ВСЕХ изображений и ВСЕХ статей" из вашего старого MediaWiki, для полного резервного копирования или сохранения контента . Добавьте несколько процедур на каждом шаге:
Шаг-1: ... см. Выше шаг-1 ... и, чтобы создать дампы текстового содержимого из старой вики
php dumpBackup.php --full | gzip | ~/dumpContent.xml.gz
Примечание: вместо --full
вы можете использовать опцию --current
.
Шаг-2: ... вам нужно dumpContent.xml.zip
и Mediafiles.zip
... из старой вики. Предположим, что оба zip-файла находятся в папке ~
.
Шаг 3: запустить в вашей новой вики
unzip ~/Mediafiles.zip -d /tmp/workingBackupMediaFiles
gunzip -c ~/dumpContent.xml.gz
| php maintenance/importDump.php --no-updates \
--image-base-path=/tmp/workingBackupMediaFiles
rm -r /tmp/workingBackupMediaFiles
php maintenance/update.php
php maintenance/rebuildall.php
Вот и все. Проверьте также Special: AllPages новой вики.