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