Hostenko — лучший WordPress-хостинг

Как корректно обновиться с 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 (возможно потребуется извращаться чтобы корректно экспортировать данные). Тут поможет изучение этих материалов: первый второй третий, а также использование специальных плагинов (часто они работают коряво) плагин1 плагин2

Также возможно после переноса конфигурации 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 (см пункты про исправление кодировок)

Удачи!

Связанные записи

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

Страницы: « 1 2 [3] Show All

  1. 34 Lecactus 24 июля 2008 в 19:18 (GMT+6)

    @ igrok54: сегодня обновлял один сайт с 2.3.2 до 2.6 и никаких проблем вообще с паролями. обновлоял несколько сайтов с 2.3.3 до 2.5.1 и тоже никаких проблем не было. что то вы не то пишете


  2. 35 igrok54 24 июля 2008 в 21:53 (GMT+6)

    А я вот сталкивался с этим… Не понимаю, почему в разных случаях разное действие… Ведь пароль шифруется по ключу, в базу заносится шифр…
    Сталкивался при перезаливке 2.5.1 поверх 2.3.3…


  3. 36 Lecactus 24 июля 2008 в 23:19 (GMT+6)

    @ igrok54: может мы разный ВордПресс используем? :) ни разу не видел подобного, а обновлял как различные чужие сайты, так и десятки раз свои тестовые


  4. 37 igrok54 25 июля 2008 в 6:53 (GMT+6)

    Дистрибутивы тут беру – имхо лучшие!
    Так что, вероятно, одинаковые…
    Может у меня глюк какой был?


  5. 38 Glook 31 июля 2008 в 15:38 (GMT+6)

    А такой вопрос: я редактировал большое количество файлов движка (WordPress 2.3.1 ), изменял не только визуальное отображение но и какие-то опции удалял/добавлял… Как мне обновить теперь wordpress? И можно ли заменить только те файлы, которые отвечают за безоопасность? Если да, то какие?


  6. 39 Lecactus 31 июля 2008 в 16:36 (GMT+6)

    @ Glook: какие именно не помню, но чаще всего это файл xmlrpc.php (нужно искать. версия уже старая достаточно. файлы нужны от версии 2.3.3. а если хотите обновлять до последней то все хаки нужно будет вносить повторно при этом часть из них возможно придется менять


  7. 40 Евгений 1 сентября 2008 в 16:20 (GMT+6)

    Фраза “накатить поверх” означает, что заменить все, кроме wp-config.php?


  8. 41 Lecactus 1 сентября 2008 в 18:56 (GMT+6)

    Фраза “накатить поверх” означает, что заменить все, кроме wp-config.php?

    можно понимать и так. не удаляя uploads (и themes если тема стандартная модифицирована). вообще я на это много раз отвечал уже. не далее как пару дней назад где то в соседнем посте


  9. 42 Mons 19 октября 2008 в 22:12 (GMT+6)

    Я вот обновился…. сутки поднять блог не могу…
    Причем в чем проблема до сих пор отловить не могу.


  10. 43 Lecactus 19 октября 2008 в 22:25 (GMT+6)

    @Mons: с какой на какую версию? подробнее плиз


  11. 44 Mons 22 октября 2008 в 12:57 (GMT+6)

    @Mons: с какой на какую версию? подробнее плиз

    C версии 2.5 с твоим переводом (я говорил что я твой фан ?) на версию 2.6.2.

    Были проблемы с запуском. Вылечил, удалением всего, обновлением и сборкой бд по строчно ручками и потом обновив базу еще раз. Все ошибки виджетов лезли и изменения заголовка файлов. Советы сапорта не помогли. Сделал сам. Думаю обновление тут было не причем. Косяк был в том что совпал апгрейд и перезд на новый сервер.


  12. 45 Gerasim13 18 ноября 2008 в 1:03 (GMT+6)

    Привет. Я вот обновляюсь с wp 2.0.4 до wp mu 2.6.3
    Обновляюсь руками, с помощью Sypex и Sql-front
    Посты встали, юзвери и категории тоже. А вот тэги к записям ни в какую. Ты не знаешь как перенести тэги со старого wp в новый (пусть даже в обычный, структура таблиц с тэгами у mu и обычного похожа)


  13. 46 Lecactus 18 ноября 2008 в 7:48 (GMT+6)

    а в версии 2.0.4 какие теги? если плагином то надо обновиться например до 2.6.3, импортировать теги плагина во “встроенные”, а затем попробовать все же экспорт-импорт XML(RSS) встроенный


  14. 47 Gerasim13 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:" палатка";}
    может есть какой нибудь способ привести это в божеский вид?


  15. 48 Lecactus 18 ноября 2008 в 9:11 (GMT+6)

    тэги реализованны не понятно как. видимо через custom fields

    повторим вопрос.: в старом вп не было тегов и если они у вас были то через какой то плагин. вспоминайте через какой. если через Jerome keywords или UTW То ставьте плагин симплтаггинг и импортируйте теги в него (до версии вп 223). затем переходите на 2.3 и импортируйте теги из симплтаггинг в встроенные. дальше обновляйте до 2.6.3 же


  16. 49 Gerasim13 18 ноября 2008 в 17:41 (GMT+6)

    Тэги реализованы на самописном плагине=((
    Есть ли способ как нибудь тэги в полуавтоматическом режиме перенести в новый wp?


  17. 50 Lecactus 18 ноября 2008 в 17:47 (GMT+6)

    Тэги реализованы на самописном плагине=((
    Есть ли способ как нибудь тэги в полуавтоматическом режиме перенести в новый wp?

    поставьте плагин симплтагс на 2.6.3 и в “масштабном редактировании” перебейте теги ручками. быстрее будет чем велосипед изобретать


  18. 51 Gerasim13 18 ноября 2008 в 18:18 (GMT+6)

    ОУ… У меня 2000 постов от разных авторов


  19. 52 Gerasim13 19 ноября 2008 в 0:01 (GMT+6)

    Сделал! Не так страшен черт!-))))


  20. 53 boonya 12 апреля 2011 в 22:49 (GMT+6)

    А как на счет обновления с 2.3.2 до 3.1.1?


Страницы: « 1 2 [3] Show All

Комментарии не по теме удаляются! Читайте реадми дистрибутива, комментарии выше и FAQ! Прежде чем задавать вопрос, прочитайте это. Научитесь ценить чужое время!

 Имя (обязательно)  EMAIL (обязательно)  АДРЕС ЛИЧНОГО БЛОГА

Вы соглашаетесь с правилами


При добавлении HTML|CSS|JS|PHP кода в комментарий, оформляйте его через кнопку КОД

 

Получать комментарии по RSS Адрес трэкбека