Переход с WordPress на WordPress MU

Лично мне пришлось 2 раза совершать миграцию между WordPress (далее WP) и WordPress MU (далее WPMU). Сначала я установил на этот домен WP2.6, потом почему-то стукнуло мне перейти на WPMU 2.6 (не помню, почему). Далее был ряд обновлений до WPMU 2.6.5. Потом мне это надоело – большая куча таблиц в базе к сайту – и я решил перепрыгнуть на WordPress 2.7. У меня это получилось без проблем :). С тех пор тут стоит WP 2.7.1, на блоге – WPMU 2.6.5, на демо-сайте – WPMU 2.7.1. Ужас, скажите вы, ибо все это в двух базах всего лишь. Но особых нареканий на производительность у меня пока нет.

Теперь предположим, что вы осознали всю необходимость и желанность вашей собственной бесплатной социальной сети BuddyPress, но вот незадача – на вашем любимом домене уже стоит WordPress 2.x (версия не имеет значения). Ничего страшного – проблема решаема в течение 30-ти минут максимум.

Что вам понадобится для перехода с обычного WP на WPMU:

  1. Доступ в админ.панель вашего сайта :)
  2. Доступ по фтп к папкам WP.

Приступим:

1. Зайдите в админку вашего WP сайта на страницу Инструменты → Экспорт.

2. Сделайте экспорт записей всех авторов (если их несколько было) вашего блога, сохраните файл в надежном месте на компьютере.

3. Посмотрите размер получившегося файла (например, wordpress.2009-07-23.xml). Если файл меньше 2 Мб (2048 Кб или 2097152 байт), то переходите к шагу 5. В ином случае вас ждет шаг 4 и немного неприятной ручной работы.

4. Итак, у вас экспортированный файл больше 2 метров, а это значит, что использовать его в дальнейшем нельзя, надо уменьшить. Но так как терять записи не хочется, то мы просто его порежем на кусочки, которые по отдельности будем в дальнейшем использовать. Для этого:

    4.1. Открываем wordpress.2009-07-23.xml правильным текстовым редактором.

    4.2. C помощью редактора найдите примерно в середине файла (вряд ли он у вас будет больше 4 мегабайт) открывающий тег <item>. Прямо над ним будет закрывающий </item>.

    4.3. Между этими двумя тегами вставьте следующий код:

    </channel>
    </rss>
    

    4.4. Сохраните старый файл. Потом переместите (т.е. вырезать в старом) все, что ниже вставленного кода (включая тег <item>), в новый файл (название не имеет значения, только латиница и цифры, расширение файла – .xml).

    4.5. В начало нового файла вставьте тоже самое, что у вас в старом ДО ПЕРВОГО УПОМИНАНИЯ ТЕГА <item> (обычно это пару десятков строк). Далее у вас должен идти тег <item> со второй частью старого файла. Сохраните новый файл.

    4.6. Если есть необходимость, разбейте исходный файл на нужное вам количество меньших частей при условии, что каждый из них должен быть меньше 2 Мб.

    5. К сожалению, настройки практически всех плагинов придется вносить потом заново, поэтому сделайте себе их скриншоты, чтобы не забыть (так будет проще вам, чем если я начну еще рассказывать, как потом отдельные строки таблицы wp_options переносить в новую таблицу wp_1_options). Если вы зайдя в базу через phpmyadmin видите, что плагин создал себе отдельную таблицу, то это значит, что можно будет (для тех, кто хоть немного в базе ориентируется) импортировать отдельные таблицы в новую базу (если в дальнейшем вы пройдете пункт 8.2). Но мой совет – для облегчения жизни – сделайте скрины и заново потом все введите.

    С ЭТОГО МОМЕНТА ЛУЧШЕ НЕ ДОПУСКАТЬ ПОЛЬЗОВАТЕЛЕЙ К ВАШЕМУ САЙТУ, ПОЭТОМУ ПОСТАВЬТЕ ПЕРЕНАПРАВЛЕНИЕ в новом файле .htaccess (что делать со старым – читайте в пункте 7):

    Redirect / http://www.какой_нибудь_адрес.ru/

    6. Теперь у вас есть слепок всех записей сайта. Переименовывайте папки /wp-admin/ и /wp-includes/ на /_wp-admin/ и /_wp-includes/ соответственно. Это мой способ пометки старых версий папок; чем старее папка, тем больше символов “_” перед названием. Кому не нравится такой способ – делайте как хотите, главное, чтобы остались старые папки/файлы у вас.

    7. Все WP файлы в корне сайта (.htaccess, index.php, все с префиксом “wp-“, а также xmlrpc.php) перемещаете в только что созданную новую папку с произвольным названием (например, _wp-old-files).

    ДЛЯ ТЕХ, У КОГО ОГРАНИЧЕННОЕ КОЛИЧЕСТВО БАЗ ДАННЫХ ИЛИ НЕТ ВОЗМОЖНОСТИ СОЗДАТЬ ЕЩЕ ОДНУ БД.

    8.1. С помощью плагина архивации базы данных WP-DB-BackUp (как?! Он у вас еще не стоит?!) отправляете себе на мыло или сохраняете на компе дамп всех таблиц. Если кому-то удобнее работать через phpmyadmin – тот уже знает, как это сделать (подсказываю: заходите в phpmyadmin, вкладка экспорт, выбираете все таблицы в базе, ниже ставите радиокнопку на sql, еще ниже выбираете архивирование gzip, далее кнопка Ok или Пошел). Дамп нужен на “всякий пожарный” случай. ВСЕГДА ПЕРЕД ТЕМ, КАК ДЕЛАТЬ ЧТО-ТО СЕРЬЕЗНОЕ С САЙТОМ И ВЫ НЕ РУЧАЕТЕСЬ ЗА ПОСЛЕДСТВИЯ, ДЕЛАЙТЕ ДАМП БАЗЫ!!!

    ДЛЯ ТЕХ, У КОГО НЕОГРАНИЧЕННОЕ КОЛИЧЕСТВО БАЗ ДАННЫХ ИЛИ КОТОРЫЕ МОГУТ СОЗДАТЬ ЕЩЕ ОДНУ БАЗУ ДЛЯ WPMU.

    8.2. Создаем через phpmyadmin еще одну базу. Старую базу, где у вас таблицы обычного WP, – не трогайте.

    9. Заливаете папки WPMU в корень сайта (ftp менеджер спросит у вас о замене папки /wp-content/, соглашайтесь, это не критично и достаточно быстро вернуться) и проводите установку WPMU БЕЗ ВМЕШАТЕЛЬСТВА В ФАЙЛ WP-CONFIG-SAMPLE.PHP. Просто пропишите адрес сайта в адресной строке.

    9.1. Если вы использовали пункт 8.1 – удалите перед установкой содержимое базы, где у вас стоял обычный WP. Если вы прошли пункт 8.2 – пропишите название новой базы данных.

    9.2. Я часто пропускаю/забываю про меню выбора блогов в виде поддиректорий или подпапок. Будь внимательны, поставьте именно то, что вам нужно.

    10. Вы установили WPMU. Авторизуйтесь, удалите стандартную запись на сайте (“Привет мир!”) и стандартную страницу (“About/О сайте”).

    11. Теперь в пустом сайте переходим к импорту данных. Для этого идете на страницу Инструменты → Импорт. По одному импортируете все файлы, созданные в пунктах 3 или 4. Если страница спросит у вас про импорт рисунков – откажетесь от этой опции, иначе движок просто выдаст вам ошибку. Менять положение папки /uploads/ мы не собираемся, поэтому все рисунки должны отображаться (путь-то к ним не изменился в записях).

    divider

    На данном этапе мануал заканчивается. Если у вас возникли какие-то проблемы – не работает сайт или еще что, то вот порядок возврата к предыдущему обычному WP.

    1. Удаляете все файлы в корне сайта, а также папки /wp-admin/ и /wp-includes/ WPMU.

    2. Переименовывайте старые папки /_wp-admin/ и /_wp-includes/ на /wp-admin/ и /wp-includes/.

    3. Перемещаете все файлы из папки /_wp-old-files/ в корень сайта (см. п.7).

    4. Если вы проходили шаг 8.1, то удаляете все созданные таблицы там, потом импортируете ваш дамп базы. Если проходили 8.2 – то вы везунчик, ничего делать не надо :)

    5. В папке /wp-content/ вам надо заменить папку /languages/ и файл index.php на оригиналы из архива обычного WP.

    divider

    В следующей записи вы прочитаете:
    Защита регистрации в BuddyPress внутри bbPress

    комментария 36

    1. Александр:

      Автоматически файл wp-config.php не сформировался. Что сделать?

      Sorry, I can’t write to the directory. You’ll have to either change the permissions on your WordPress directory or create your wp-config.php manually.

    2. Доступ на папку установить 777, 755… или создать файл ручками – то есть переименовать дефолтный

    3. И насколько все будет похоже на то, что было до МУ? у меня просто есть сайт на вордпрессе, на котором и так тусуется с десятка два юзеров. хочу сейчас превратить его в более менее полноценную социалку, но переживаю, что мы с таким переходом больше потеряем чем приобретем.

      • не понятен вопрос… придется заново перестроить тему… дождаться полной русификации плагинов… обновиться на тестовом… опыт применить на боевом сервере и написать в новостях заметку о новых фичах :)

    4. rxs:

      @slaFFik, я правильно понимаю, что экспорт-импорт записей через Инструменты WP уже включает добавление содерживмого в базу данных WPMU, потому дамп базы WP нужен “на всякий случай” ?

    5. rxs:

      Раз мы уже можем ставить BuddyPress на WP, то как пройдет вариант миграции: WP+BuddyPress -> WPMU+BuddyPress.
      Посты переносятся как уже сказано выше, а что с данными BuddyPress ?

    6. @rxs:
      На следующей неделе я напишу и об этом, и о WordPress 3.0. Подождите.

    7. 8.1 Если нет возможности создать новую базу данных, то можно перед установкой аккуратненько в файле WP-CONFIG-SAMPLE.PHP изменить префикс таблиц. Тогда старые таблицы останутся как есть, а новые создадутся с другим именем.

    8. И еще проблема возникла при переходе. WPMU наотрез отказался работать с адресом с www – сказал, что это вчерашний день, и при попытке приписать www перед адресом сайта выдавал ошибку 404.
      Из-за этого пришлось сделать перенапреление в htaccess.

      И спустя недельку сайт полностью выпал из Яндекса – потому что Я считает за основной сайт адрес http://www.site.ru и отказываются индексировать его “зеркало” site.ru, а при обращении бота к www его перенаправляет на без – замкнутый круг.

      Гуглю хватило недели, чтобы перестроиться, Платон написал, что Я надо минимум 4-6 недель. Пока прошло всего 3 – сдвигов никаких.

      Вот такой “веселенький” подводный камень вылез…

    9. @Татьяна:
      Можно попробовать с помощью изменения dns записей сделать перенаправление. Или воспользоваться постоянным редиректом – его все поисковики понимают.. А в .htaccess – не лучший вариант.

    10. Татьяна,
      301 (или 302, точно не помню) редирект в htaccess… так называемая “склейка” :) (у себя именно так и сделал – проблем нет)

      Я – быть в его индексах это уже не более чем спорт для SEO-шников.. бредовый поисковик.. в последнее время..

      Главное – это нужная социалка, она сама себе пробьет путь :) зы: а можно узнать адрес Вашей сети?..

    11. @Александр:
      А я знаю адрес – но не скажу! Выяснил не совсем легальным путем… Можешь проанализировать все ее комментарии – увидишь, наверное…

      Татьяна – без обид ;)

    12. Вот вы на пару крутите эту социалку :) вариант подсказали.. ;)

    13. rxs:

      У гугла в вебместере можно самостояльно задать домен. И для яндекса еще есть директива host в robots.txt.

    14. Татьяна:

      Александр, 301-я склейка проходит без проблем, если новый адрес “свеженький”, а тут Я его считает за зеркало и отказывается индексировать. Из принципа. А что в robots.txt прописан новый адрес хоста – на это ему и надо от 4-6 недель. В Гугле вообще ничего не делала, сам разобрался за считанные дни.
      Точно, спорт. :-))) Жаль только, что Я пользуется большинство…

      А адреса мне не жалко – поставила в ссылку. ;-) Посещаемость упала втрое, но жизнь кипит помаленьку, и это приятно.
      slaFFik, какие обиды, я ж сама обещала показать, как готово будет. ;)

    15. Татьяна,
      Не знаю насчет Я.. по моим данным – Google дает больший процент отдачи… значительно больший :)

      зы: замените “активность” – тестами :)

    16. rxs,
      не получается.. требует подтвердиться, а сайт то уже подтвержден.. поэтому 301 редирект в помощь! ну и чуток терпения :)

    17. Александр, отдача сильно зависит от темы сайта и его аудитории. У меня была от Мейла (там сейчас тоже ужас-ужас).

      зы. Мне активность нравится. И плагин не надо новый писать. ;)

    18. Здраствуйте. Прошол и ходит слух что в WP3 произойдет слияние WP и WPMU в связи с этим уменя возникает вопрос. Как вы считаете, лучше дождатся (месяц – полтора) выхода WP3 или перейти на WPMU поскольку потребность есть, не очень острая но есть.

    19. rxs:

      @Волк:
      Слияние WP и WPMU будет не полное.
      Подробнее тут
      http://wordpress.org/support/topic/345127/page/7?replies=186
      или тут
      http://usingwp.ru/wordpress/wordpress-30-funkcional/

      Потому ждать или нет зависит от задачи.

    20. Александр:

      Волк,
      Если можно ждать, то лучше ждать :) а там по обстоятельствам

    21. Сергей:

      Здравствуйте!

      Создаю блог на движке WordPress. Недавно решил перейти на WordPress MU. Удалось установить WordPress MU 2.9.1.1. У меня такая проблема. Экспортировал все записи и страницы через админ-панель WordPress и импортировал их через админ-панель WordPress MU. Активировал тему, которую настраивал на обычном WordPress. В итоге все записи и заметки отображаются в админ-панели WordPress MU, но не на самом блоге… Т.е. блог пустой, хотя виджеты “Страницы” и “Категории” отображаются (причем отображается только один сайдбар, хотя их у меня два и не отображается область контента). В админке все записи и страницы присутствуют, но не отображаются при просмотре блога. Если активировать другую тему, то все отображается так, как и должно быть… Но те темы, что идут в комплекте меня не устраивают… Значит тема не подходит?… Можно ли ее как-нибудь настроить на корректное отображение?… Если нет, то подскажите, пожалуйста, где мне отыскать красивые темы для WPMU… Сколько не искал, везде темы для обычного WP… Может можно все-таки подкорректировать как-то код темы для WP, чтобы на WPMU тема тоже отображалась корректно?…

    22. Александр:

      странный глюк.. а BP стоит?..

    23. Сергей:

      Пока еще нет… Но я планирую его установить…

    24. Александр:

      Можно попробовать обновить рубрики, у меня переход был только с косяком в рубриках..

    25. Сергей:

      Действительно! Зашел в рублики и там некоторые рублики по две штуки с одинаковыми названиями. А еще есть рублика с названием Uncategorized, которую нельзя удалить… Дупликаты рублик я удалю, а вот что делать с рубликой Uncategorized?

    26. Сергей:

      Я понял! Uncategorized – это рублика, в которую попадают записи из удаленных рублик. Теперь у меня происходит следующие:

      1. После активации всех плагинов, которые у меня были установлены в обычном WP, главная страница блога перестала загружаться. Вместо нее – белый лист. Хотя остальное загружается. Стабилизировался вид блога. Т.е. теперь все сайдбары и область контента загружаются и отлично отображаются.

      2. Все заметки, распределенные по категориям, не загружаются, хотя страницы загружаются без проблем.

      3. Возможно проблема в рубликах. В настройках у каждой рублики, которая названа по русски, стоит ярлык на латинском. Так, например, у рублики “Мои стихи” стоит ярлык “moi-stixi”, но при просмотре блога этого нет, т.е. в поле адреса стоит русское название рублики вместо ярлыка, а при открытии такой категории появляется страница с ошибкой о том, что категория не найдена. Плагин RusToLat активирован.

    27. Сергей:

      Забыл уточнить по поводу того, что главная страница блога не загружается. За главную страницу блога отвечает конкретная страница “О блоге”. Ярлык у нее соответственно “o-bloge”. Так вот, если в поле адреса ввести просто адрес блога без указания какой-либо страницы, то открывается просто пустая белая страница, а если добавить ярлык страницы “О блоге”, то она загружается… Возможно, что это из-за какого-то плагина, т.к. до активации плагинов все было в порядке…

      • Есть похожая проблема. Как Вы решили её?

        • Сергей:

          Нужно отключить плагин Auto-more.

          • den:

            Не помогло. Выносит чилд апача и даже core не создает, чтобы его прочитать. Похоже, ковыряться придется либо в плагинах, либо в модулях апача. :(

            • den:

              Забыл сказать, глюк проявляется как “то вот есть титульная страница, то вот ее нет при нажатии F5, то вот она снова есть”. Мозгов на сервере аж 2 гига, 4 проца. И вдруг вот завелась такая фигня…..

    28. Kaizer:

      А ведь на сколько я понял с сайта WordPress’a они MU больше не выпускают, ведь так ?

      • Да, WPMU и WP начиная с версии 3.0 объединены в одну инсталляцию. Теперь это называется MS – Multisite

    1. 31.07.2009

      […] работа и они хотят присоединиться, то стоит задумать о переходе с обычного WordPress на WordPress MU. Там подробно описан алгоритм ваших […]

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *