Перенос Mediawiki


Перенос Медиавики дело само по себе достаточно тривиальное. Перезаливаем на новый хост все файлы, разворачиваем базу из дампа и правим три-четыре строчки в конфигах.

Все радости секса начинаются в тот момент, когда оказывается, что кодировки MySQL на хостах не совпадают. А с учетом того, что у Mediawiki есть неприятная особенность создавать таблицы в UTF8 и складывать в них данные к кодировке latin1 процесс начинает миграции принимает черты полового извращения.

Я весьма далек от понимания того, что за вуду происходит на этапах создания и развертывания дампа, поэтому технических деталей не будет. Будет лишь небольшой рецепт для непродвинутых пользователей.

Точнее один из возможных рецептов переноса Mediawiki

Вся загвоздка заключается именно в том, что Mediawiki по умолчанию хранит записи в кодировке latin1. Это никак не отражается (?) на работе сайта, однако в базе данных записи выглядят как кракозябы.

Шаг первый. Поднимаем Mediawiki на новом хосте. Прежде чем запустить инсталляцию, идем в phpMyAdmin и в разделе “Операции” устанавливаем сравнение в utf8_general_ci. При установке Mediawiki ставим радиобатон в позицию Experimental MySQL 4.1/5.0 UTF-8. После установка Mediawiki заходим в phpMyAdmin, убеждаемся в том, что записи лежат в читабельной кириллице, а не в переебанном виде.

Шаг второй. Качаем dumper и правим в файле dumper.php сороковую строку (это в версии 108)

define('CHARSET', 'latin1');

Сорок шестая строка соответствовать выбранному сравнению, т.е. выглядеть примерно так

define('RESTORE_CHARSET', 'utf8_general_ci');

Этим мы принудительно устанавливаем кодировку соединения с MySQL в UTF8, данные же забираются в кодировке latin1. Запускаем скрипт. Натурально, он будет матюгаться красными сообщениями о том, что дескать выбранная кодировка не соответствует кодировке таблиц, но в данном случае это есть гут.

Шаг три. Разворачиваем дамп с помощью того же dumper. Идем в phpMyAdmin, убеждаемся, что записи по прежнему в читабельной кириллице.

В принципе все. Наслаждаемся полученным эффектом.

Еще по теме

MediaWiki, MySQL, cp1251, utf8 by Михаил Елфимов

Трики (хард- и софткор) ,

  1. 5 Январь 2009 в 00:25 | #1

    Большое спасибо за рецепт, реально работает! Я уже третий день голову ломаю с этими кодировками, не пойму почему не переносится база Mediawiki на другой сервер.

    Да и вообще, весьма полезная утилитка этот Dumper, для тех, кто консолькой на сервер не привык ходить.

  2. 6 Январь 2009 в 21:06 | #2

    Владимир, я очень польщен тем, что Вам пригодились мои, так сказать, изыскания :)

  3. 7 Май 2009 в 15:33 | #3

    Добрый день!
    А у меня засада немного не в этом, но очень схожая ситуация: wiki установлена успешно, но не работает функция “Загрузить файл” с заглавной страницы :-( НУ НИКАК ПРОСТО!
    В базе после закачки крокозябры, ну да и Бог с ними. А вот ссылка на загруженный файл формируется криво. Т.е. после загрузки по ссылке перейти нельзя. Файлы в папке imgaes сохраняются крокозябренные. Если заходить браузером для просмотра папки, где лежит файл, то ссылка на него совсем отличается от ссылки, указанной в журнале загрузок. Что делать - не приложу ума. Переустанавливал сто раз! Поднимал IIS и Apache.
    По сему вопросы:
    1. Какая локаль ОС (windows) должна быть на web-сервере и играет ли это роль?
    2. Зависит ли наполнение таблицы БД image крокозябрами от веб-сервера (Apache, IIS)?
    3. При установки энджина MySQL какой default charset выставлть?

    Ну все хорошо, но вот с кодировками просто не знаю что делать (((
    ПОМОГИТЕ ПЛЗ!

    СПАСИБО!

  4. 13 Май 2009 в 01:51 | #4

    Пфффф… даже не знаю (у меня дурацкая манера работать прямо на удаленном сервере, а уж как его настраивать - то админа проблема, ему за то и плотят).

    Перед инсталляцией Вики, устанавливаю Сравнение в utf_general_ci, и все записи в базе в нормальной кириллице.

    Имена загружаемых файлов латиницей.

  5. 17 Ноябрь 2009 в 02:34 | #5

    Пришел на эту страницу по запросу “Перенос Mediawiki” и сначала испугался - как это сложно. А затем все же рискнул и сделал самым простым способом: создал дамп средствами phpMyAdmin, восстановил на новом хосте теми же средствами, перенес файлы, ввел в настройках данные доступа к новой базе и… все. И никаких проблем с кодировками :)

    Так-что не обязательно там что-то мудрить.

  1. Пока что нет уведомлений.
SEO Powered by Platinum SEO from Techblissonline