Как корректно обновиться с WordPress “расширенной версии” Максима (Maxsite.org), а также со старых “обычных версий” 2.0.*(2.1.*) до WordpRess 2.5(2.6) английской или русской “обычных версий”
Тут всего два варианта. Простой и сложный.
1. Простой – это если у вас база данных работает в кодировке utf-8, которая единственная полноценно поддерживается WordPress’ом. В данном случае вам нужно перед обновлением открыть файл wp-config.php , который в настоящее время выглядит примерно так:
<?php
### Перед установкой WordPress'а, прочтите, пожалуйста, файл read-me.txt
### Приведенные здесь настройки обычно используются при кодировке базы данных UTF-8
# настройки доступа к MySQL
define('DB_NAME', ''); # название базы данных
define('DB_USER', ''); # пользователь MySQL
define('DB_PASSWORD', ''); # пароль
define('DB_HOST', 'localhost'); # в 99% случаев используется этот хост
$table_prefix = 'wp_'; # префикс таблиц
define('DB_CHARSET', 'utf8'); # кодировка базы данных: utf8 или cp1251
define('DB_COLLATE', 'utf8_general_ci'); # кодировка, в которой хранятся данные: utf8_general_ci или cp1251_general_ci
# КЭШИРОВАНИЕ - во время установки WordPress отключен, после можно включить
define('DISABLE_CACHE', ''); # для включения кэша добавьте комментарий ("//")в начало строки
# ЕСЛИ КОДИРОВКА БАЗЫ ДАННЫХ ОТЛИЧАЕТСЯ ОТ КОДИРОВКИ БЛОГА
# разрешить преобразовывать тексты блога в кодировку базы данных
# например если база данных работает в WINDOWS-1251, а блог в UTF-8
define('MAXSITE_DB_CONVERT', false); # true - разрешить, false - запретить
# кодировка базы данных для автоматического перекодирования (работает если MAXSITE_DB_CONVERT=true)
define('MAXSITE_DB_CHARSET', 'WINDOWS-1251'); # WINDOWS-1251 или UTF-8
# STOP EDITING!!! ДАЛЕЕ НЕ РЕДАКТИРУЙТЕ!!!
define('MAXSITE_CHARSET_BLOG', 'UTF-8'); # кодировка блога - всегда UTF-8!
define('ENABLE_CACHE', '');
define('ABSPATH', dirname(__FILE__).'/');
require_once(ABSPATH.'wp-language.php'); # файл своего перевода
require_once(ABSPATH.'wp-settings.php');
# ЕСЛИ ВЫ ОБНОВЛЯЕТЕ WordPress, ТО ВЫПОЛНИТЕ ВТОРОЙ ЭТАП
# СМ. ИНСТРУКЦИЮ В read-me.txt
// require_once(ABSPATH . 'wp-upgrade-all.php'); maxsite_wp_upgrade();
?>
Вам нужно из него удалить более не нужные строки, чтобы на “выходе” получилось так:
<?php
define('DB_NAME', ''); # название базы данных
define('DB_USER', ''); # пользователь MySQL
define('DB_PASSWORD', ''); # пароль
define('DB_HOST', 'localhost'); # в 99% случаев используется этот хост
$table_prefix = 'wp_'; # префикс таблиц
define('DB_CHARSET', 'utf8'); # кодировка базы данных: utf8 или cp1251
define('DB_COLLATE', ''); # кодировка, в которой хранятся данные:
if ( !defined('ABSPATH') )
define('ABSPATH', dirname(__FILE__) . '/');
require_once(ABSPATH . 'wp-settings.php');
?>
После этого вы можете “накатить поверх” более свежую версию. Необходимо только следовать правилам.
1. обязательно делать бэкап базы данных
2. визуально посмотреть через phpmyadmin что кодировка базы данных и всех таблиц стоит как utf8_general_ci.
3. Зайти в несколько таблиц и убедиться что все слова на русском выглядят нормально, а не абракадарброй.
4. Если вы обновляете WordPress 2.0.* ставьте поверх 2.1 (или можно сразу последний релиз ветки 2.1, затем после визуальной проверки что все нормально – ставьте WordPress 2.2 или сразу 2.2.3, затем поверх 2.3. После 2.3 можно сразу ставить 2.5.1 или 2.6
Тут следует уточнить что строки
define('DB_CHARSET', 'utf8'); # кодировка базы данных: utf8 или cp1251
define('DB_COLLATE', ''); # кодировка, в которой хранятся данные:
отсутствовали в WordPress 2.0 и 2.1, поэтому если их нет в вашем конфиге, то их следует добавить принудительно. Лучше всего вообще взять wp-config-sample.php от новой версии и туда переписать свои данные для подключения к базе.
2. Сложный если вы использовали конфигурацию с кодировкой базы Windows-1251, то вам предварительно рекомендую:
1. сделать экспорт базы
2. изменить везде слова cp1251 на utf8
3. сохранить дамп в кодироке utf-8
4. удалить таблицы в базе.
5. изменить “сравнение” в базе с cp1251_general_ci на utf8_general_ci
6. залить исправленный дамп в базу.
7. проверить что везде написано в таблицах utf8_general_ci и визуально оценить присутствие русских слов.
все это можно делать и командой – если знаете как. ниже по ссылкам где то это было описано в комментариях
Допустим у вас конфиг сейчас выглядит так:
<?php
### Перед установкой WordPress'а, прочтите, пожалуйста, файл read-me.txt
### Приведенные здесь настройки обычно используются при кодировке базы данных Windows-1251
# настройки доступа к MySQL
define('DB_NAME', ''); # название базы данных
define('DB_USER', ''); # пользователь MySQL
define('DB_PASSWORD', ''); # пароль
define('DB_HOST', 'localhost'); # в 99% случаев используется этот хост
$table_prefix = 'wp_'; # префикс таблиц
define('DB_CHARSET', ''); # кодировка базы данных: utf8 или cp1251
define('DB_COLLATE', ''); # кодировка, в которой хранятся данные: utf8_general_ci или cp1251_general_ci
# КЭШИРОВАНИЕ - во время установки WordPress отключен, после можно включить
define('DISABLE_CACHE', ''); # для включения кэша добавьте комментарий ("//")в начало строки
# ЕСЛИ КОДИРОВКА БАЗЫ ДАННЫХ ОТЛИЧАЕТСЯ ОТ КОДИРОВКИ БЛОГА
# разрешить преобразовывать тексты блога в кодировку базы данных
# например если база данных работает в WINDOWS-1251, а блог в UTF-8
define('MAXSITE_DB_CONVERT', true); # true - разрешить, false - запретить
# кодировка базы данных для автоматического перекодирования (работает если MAXSITE_DB_CONVERT=true)
define('MAXSITE_DB_CHARSET', 'WINDOWS-1251'); # WINDOWS-1251 или UTF-8
# STOP EDITING!!! ДАЛЕЕ НЕ РЕДАКТИРУЙТЕ!!!
define('MAXSITE_CHARSET_BLOG', 'UTF-8'); # кодировка блога - всегда UTF-8!
define('ENABLE_CACHE', '');
define('ABSPATH', dirname(__FILE__).'/');
require_once(ABSPATH.'wp-language.php'); # файл своего перевода
require_once(ABSPATH.'wp-settings.php');
# ЕСЛИ ВЫ ОБНОВЛЯЕТЕ WordPress, ТО ВЫПОЛНИТЕ ВТОРОЙ ЭТАП
# СМ. ИНСТРУКЦИЮ В read-me.txt
// require_once(ABSPATH . 'wp-upgrade-all.php'); maxsite_wp_upgrade();
?>
его нужно также преобразовать в такой вид, как было описано выше
<?php
define('DB_NAME', ''); # название базы данных
define('DB_USER', ''); # пользователь MySQL
define('DB_PASSWORD', ''); # пароль
define('DB_HOST', 'localhost'); # в 99% случаев используется этот хост
$table_prefix = 'wp_'; # префикс таблиц
define('DB_CHARSET', 'utf8'); # кодировка базы данных: utf8 или cp1251
define('DB_COLLATE', ''); # кодировка, в которой хранятся данные:
if ( !defined('ABSPATH') )
define('ABSPATH', dirname(__FILE__) . '/');
require_once(ABSPATH . 'wp-settings.php');
?>
напоминаю что это стандартный конфиг wordpress 2.3* и после обновления до 2.5.1 или 2.6, вам потребуется взять образец из новой версии и переписать в него свои данные для подключения.
Трудности могут возникнуть при обновлении WordPress 2.0 и 2.1 (возможно потребуется извращаться чтобы корректно экспортировать данные). Тут поможет изучение этих материалов: первый второй третий, а также использование специальных плагинов (часто они работают коряво)
Также возможно после переноса конфигурации 1251 –>> UTF8 вас может поджидать “подводный камень” в виде невозможности зайти в админку – “отказ доступа”. Я с этим сталкивался раза 3 при обновлении старых блогов на WordPress 2.0.4 до 2.5.1. После обновления 2.2 до 2.3 в админку можно было попасть только если исказить параметры подключения в конфиге. После этого админка работала, а блог был в “вопросиках”.
Решается это гениально и достаточно просто, но с небольшими потерями.
1. сделайте экпорт базы – все таблицы, кроме таблицы wp_options (подставить тут свой префикс)
2. удалите все таблицы из базы и сымитируйте “чистую установку”, т.е. откройте УРЛ блога и вам предложит заполнить его название и адрес мыла админа. После того как вы попадаете в установленный блог, сделайте еще один дамп базы (на всякий случай).
3. Удалите в базе все таблицы, кроме wp_options
4. импортируйте вашу нормальную базу (см п.1)
5. после этого вы сможете нормально войти в админку, только у вас пропадут все настройки плагинов и блога. Выставляются они за 5-10минут.
Больше сильных особенностей при переходе нет. Если Вы самостоятельно не можете справитсья с обновлением, то можете обратиться ко мне за платной помощью.
Стоимость услуги составляет 150-400рублей. Срок исполнения 30-120минут. В запущенных случаях может быть до суток, если потребуется приводить базу в нормальное состояние.
Часть действий понадобится не только при обновлении сборки Maxsite.org до “обычной”, но и при обновлении обычных версий 2.0-2.2 (см пункты про исправление кодировок)
Удачи!
Рубрики: Wordpress Метки: Wordpress, инструкция, полезно
Распечатать
Связанные записи
53 комментария
Комментарии не по теме удаляются! Читайте реадми дистрибутива, комментарии выше и FAQ! Прежде чем задавать вопрос, прочитайте это. Научитесь ценить чужое время!

(голосов: 7, средний: 4.14 из 5)


24 июля 2008 в 19:18 (GMT+6)
@ igrok54: сегодня обновлял один сайт с 2.3.2 до 2.6 и никаких проблем вообще с паролями. обновлоял несколько сайтов с 2.3.3 до 2.5.1 и тоже никаких проблем не было. что то вы не то пишете
24 июля 2008 в 21:53 (GMT+6)
А я вот сталкивался с этим… Не понимаю, почему в разных случаях разное действие… Ведь пароль шифруется по ключу, в базу заносится шифр…
Сталкивался при перезаливке 2.5.1 поверх 2.3.3…
24 июля 2008 в 23:19 (GMT+6)
@ igrok54: может мы разный ВордПресс используем? :) ни разу не видел подобного, а обновлял как различные чужие сайты, так и десятки раз свои тестовые
25 июля 2008 в 6:53 (GMT+6)
Дистрибутивы тут беру – имхо лучшие!
Так что, вероятно, одинаковые…
Может у меня глюк какой был?
31 июля 2008 в 15:38 (GMT+6)
А такой вопрос: я редактировал большое количество файлов движка (WordPress 2.3.1 ), изменял не только визуальное отображение но и какие-то опции удалял/добавлял… Как мне обновить теперь wordpress? И можно ли заменить только те файлы, которые отвечают за безоопасность? Если да, то какие?
31 июля 2008 в 16:36 (GMT+6)
@ Glook: какие именно не помню, но чаще всего это файл xmlrpc.php (нужно искать. версия уже старая достаточно. файлы нужны от версии 2.3.3. а если хотите обновлять до последней то все хаки нужно будет вносить повторно при этом часть из них возможно придется менять
1 сентября 2008 в 16:20 (GMT+6)
Фраза “накатить поверх” означает, что заменить все, кроме wp-config.php?
1 сентября 2008 в 18:56 (GMT+6)
можно понимать и так. не удаляя uploads (и themes если тема стандартная модифицирована). вообще я на это много раз отвечал уже. не далее как пару дней назад где то в соседнем посте
19 октября 2008 в 22:12 (GMT+6)
Я вот обновился…. сутки поднять блог не могу…
Причем в чем проблема до сих пор отловить не могу.
19 октября 2008 в 22:25 (GMT+6)
@Mons: с какой на какую версию? подробнее плиз
22 октября 2008 в 12:57 (GMT+6)
C версии 2.5 с твоим переводом (я говорил что я твой фан ?) на версию 2.6.2.
Были проблемы с запуском. Вылечил, удалением всего, обновлением и сборкой бд по строчно ручками и потом обновив базу еще раз. Все ошибки виджетов лезли и изменения заголовка файлов. Советы сапорта не помогли. Сделал сам. Думаю обновление тут было не причем. Косяк был в том что совпал апгрейд и перезд на новый сервер.
18 ноября 2008 в 1:03 (GMT+6)
Привет. Я вот обновляюсь с wp 2.0.4 до wp mu 2.6.3
Обновляюсь руками, с помощью Sypex и Sql-front
Посты встали, юзвери и категории тоже. А вот тэги к записям ни в какую. Ты не знаешь как перенести тэги со старого wp в новый (пусть даже в обычный, структура таблиц с тэгами у mu и обычного похожа)
18 ноября 2008 в 7:48 (GMT+6)
а в версии 2.0.4 какие теги? если плагином то надо обновиться например до 2.6.3, импортировать теги плагина во “встроенные”, а затем попробовать все же экспорт-импорт XML(RSS) встроенный
18 ноября 2008 в 8:01 (GMT+6)
тэги реализованны не понятно как. видимо через custom fields
в базе вот такая бяка (postsmeta)
a:8:{i:0;s:5:"Дахаб";i:1;s:12:" виндсерфинг";i:2;s:6:" Анапа";i:3;s:8:" счастье";i:4;s:6:" жилье";i:5;s:10:" гостиница";i:6;s:5:" кэмп";i:7;s:8:" палатка";}
может есть какой нибудь способ привести это в божеский вид?
18 ноября 2008 в 9:11 (GMT+6)
повторим вопрос.: в старом вп не было тегов и если они у вас были то через какой то плагин. вспоминайте через какой. если через Jerome keywords или UTW То ставьте плагин симплтаггинг и импортируйте теги в него (до версии вп 223). затем переходите на 2.3 и импортируйте теги из симплтаггинг в встроенные. дальше обновляйте до 2.6.3 же
18 ноября 2008 в 17:41 (GMT+6)
Тэги реализованы на самописном плагине=((
Есть ли способ как нибудь тэги в полуавтоматическом режиме перенести в новый wp?
18 ноября 2008 в 17:47 (GMT+6)
поставьте плагин симплтагс на 2.6.3 и в “масштабном редактировании” перебейте теги ручками. быстрее будет чем велосипед изобретать
18 ноября 2008 в 18:18 (GMT+6)
ОУ… У меня 2000 постов от разных авторов
19 ноября 2008 в 0:01 (GMT+6)
Сделал! Не так страшен черт!-))))
12 апреля 2011 в 22:49 (GMT+6)
А как на счет обновления с 2.3.2 до 3.1.1?