Как корректно обновиться с 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, инструкция, полезно
Распечатать
Связанные записи
54 комментария
Трэкбеки и пингбеки
Комментарии не по теме удаляются! Читайте реадми дистрибутива, комментарии выше и FAQ! Прежде чем задавать вопрос, прочитайте это. Научитесь ценить чужое время!

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


15 июля 2008 в 14:39 (GMT+6)
Спасибо! Страничку сохранил и буду вдумчиво вчитываться! ;)
15 июля 2008 в 16:02 (GMT+6)
Кста, а не было ли эксперимента по переходу с 2.0.х на 2.5(2.6) с помощью плагина автообновления?
15 июля 2008 в 16:14 (GMT+6)
учитывая что плагин автообновления делает ТОЖЕ САМОЕ, что и любой нормальный пользователь делает вручную при обновлении, то смысла в таком тесте не вижу. т.к. плагин автообновления попытается скачать последнюю версию – читай 2.6 к примеру и сразу накатить ее на 2.0.*. при этом конфиг плагин НЕ ИСПРАВИТ и с вероятностью примерно в 50% вообще какая то часть информации грохнется. Вообще я пробовал обновлять 2.0.9 до 2.5.1 и все работало вроде, только с рубриками был какой то косяк.
15 июля 2008 в 17:09 (GMT+6)
По идее при таком переходе должны пострадать старые плагины, и рубрики станут метками.
Надо попробовать на досуге. Имхо, правельнее учить пользовать сей плагин ибо он делает бэкапы сам, а то пользователи не все понимают ответственность сих операций.
15 июля 2008 в 17:15 (GMT+6)
Очень сложно написал. Конфиги все поперепутывают…
Про обновление со своей сборки я уже рассказывал: http://maxsite.org/kak-obnovit-wordpress-moey-sborki
15 июля 2008 в 17:25 (GMT+6)
По обновлению с 2.0.* тоже много раз говорил. Последовательность такая:
- вначале до 2.0.9. Обязательно.
- после можно сразу до 2.3.3 (на большую не проверял, не пользуюсь).
Если проблемы с кодировкой базы, то лучше, чем экспорт-импорт нет. Проверено 100 раз. Для 2.0.*, где нет файла export.php, берем его из 2.1.
15 июля 2008 в 17:29 (GMT+6)
точно я про эту запись и говорил Гепарду недавно
15 июля 2008 в 19:48 (GMT+6)
вобще не думал преходить на последние версии.
у меня как то издавна блог на cp1251 и это меня устраивает. с utf8 я пока что имел больше проблем, чем радостей
но, чувствую, придется как-нибудь перейти. это, похоже, не так уж сложно
15 июля 2008 в 20:54 (GMT+6)
Не факт. Можно так обновиться, что половиной контента распрощаешься. :(
15 июля 2008 в 21:01 (GMT+6)
Согласно руководства все и делали. Где грабли – не понял. Я вообще такое в первый раз в жизни вижу, чтобы в одной БД часть текста в кодировке Win, а часть – в utf-8. Как такое вообще возможно?!
15 июля 2008 в 21:13 (GMT+6)
@ Гепард: можно хоть вообще все таблицы делать в разных кодировках. и даже поля таблиц
15 июля 2008 в 21:36 (GMT+6)
Скорее всего, так оно все и было. Может, разные плугинсы отправляли текст в БД в разных кодировках, этого я не знаю, ничего не понимаю в базах, к сожалению. Просто тупо скачал, в текстовом редакторе открыл и афигел. )))) Вроде хостер переходила на новую версию Спанели, а там требовалась именно конкретная кодировка utf-8, вот они там сами, без мну, все и конвертнули. Эх! ну и как водится часть отображается нормально, часть – в виде вопросиков. И на сайте выводится аналогично. А сейчас хостера вообще на месте нет. Две недели уже, в спанель не войти – авторизация не проходит, но как только, так сразу сделаю последний дамп (предыдущий, где еще все нормально было, у меня есть) и вышлю тебе письмом оба дампа. Может, сможешь исправить (не бесплатно, конечно ;)) и нормально обновиться. Жалко терять хороший сайт и начинать с нуля – тоже не очень хочется.
16 июля 2008 в 0:25 (GMT+6)
А можно наоборот с 2.5.1 версии на 2.3.? Говорят там визуальный редактор работает… или легче что-то с этим редактором сделать?
16 июля 2008 в 3:38 (GMT+6)
Спасибо, страница идет в “избранное”!
16 июля 2008 в 8:50 (GMT+6)
@ Danil: экспорт-импорт записей, а виз.редактор может не работать по целой горе причин. поищите по форумам. или поставьте плагин редактора FCKeditor. он работает в 99% случаев там где отказывается работать tinymce, но не работает вообще в Опере
17 июля 2008 в 1:07 (GMT+6)
Вопрос такой:
Скачал у вас, установил все ок, но несмотря на то что все вроде руссфицированно, в коментах вылезает англоязычность:
пример
Запись создана: Среда, 16 Июль 2008 в 10:22 и находится в рубриках Новости. Вы можете следить за комментариями к этой записи через ленту RSS 2.0. Вы можете оставить отзыв, или trackback с вашего собственного сайта.
One Response to “Привет мир!”
1. Irina Says:
Июль 16th, 2008 at 12:07
В качестве теста ололррр!
Leave a Reply
You must be logged in to post a comment.
17 июля 2008 в 1:09 (GMT+6)
да забыл – версия 2.6
17 июля 2008 в 1:18 (GMT+6)
@ Andrew: это у вас тема не русифицирована. http://forum.maxsite.org/viewtopic.php?id=1552. Стандартные темы из сборки все полностью локализованы. если быть точнее то искать вам нужно эти слова в comments.php вашей активной темы
17 июля 2008 в 12:17 (GMT+6)
что значит “накатить”? более подробно действия. плиз?
17 июля 2008 в 13:21 (GMT+6)
@ КомПик: значит записать файлы поверх старых
17 июля 2008 в 13:35 (GMT+6)
с 2.2 на 2.6 с помощью автоапгрейда – практически без потерь =)
17 июля 2008 в 14:40 (GMT+6)
Странно, тема по умолчанию – не менял :(
Благодарю за подсказку, где рыть! :)
С Уважением, Андрей !
17 июля 2008 в 15:09 (GMT+6)
@ Andrew: все, теперь понял о чем речь идет. файл в дистрибутиве заменил.
17 июля 2008 в 19:44 (GMT+6)
все понятно, там часть контента сайта отдается по порту 88, а он был забрит на рабочей проксе
18 июля 2008 в 17:33 (GMT+6)
А есть ли смысл обновляться, если новые фичи не нужны? Т.е. пофикшены ли там дыры в безопасности или только функциональное улучшение?
18 июля 2008 в 18:49 (GMT+6)
@ Ximik: если новые фичи не нужны то можно сидеть хоть на 2.0.11 просто новые плагины выпускают в основном ТОЛЬКО под новые версии и в новых версиях больше разных систем защиты как встроенных так и возможности подключать внешние
23 июля 2008 в 13:47 (GMT+6)
Можно ли заново поставить 2.6, а потом импортировать в него записи, страницы, метки из 2.5.1? А то у меня на блоге какие-то баги завелись – запись с первого раза не публикуется, а помещается в “Черновики”, плагины некоторые не работают…
23 июля 2008 в 14:23 (GMT+6)
@ peacemaker: можно,но подозреваю проблема у вас где то в другом месте зарыта
24 июля 2008 в 17:36 (GMT+6)
Статья весьма полезная! Но есть некоторые “но”.
А как же с кеем к паролю админа, который поддерживается с версий 2.5? Насколько я понимаю, тут будет проблема со входом администратора.
Небольшие сайты проще через экспорт-импорт обновить.
24 июля 2008 в 17:40 (GMT+6)
@ igrok54: а причему тут “кей” к паролю? проверял на разных версиях. проблем никаких, даже если этот “кей” менять потом на другие. все как говорится испытано на себе
24 июля 2008 в 18:18 (GMT+6)
Имел в виду вот эту полезную фичу из файла конфига WP 2.5:
// Измените SECRET_KEY на уникальную фразу. Вам не потребуется запоминать ее,
// сделайте ее подлиннее. Вы можете посетить
// чтобы получить сгенерированную фразу, или напишите что нибудь сами.
define('SECRET_KEY', 'put your unique phrase here'); // Измените это на уникальную фразу.
Думаю, что в этом случае поможет такой вариант:
Заменить ключевую фразу на свою в конфиге дистрибутива на обновляемом сайте.
Установить заново отдельно новый чистый WP с той же ключевой фразой для шифрования пароля, поменять в админке WP сгенерированный пароль на нужный, зайти в PHPMyAdmin и взять пароль в таблице users.
Потом, после обновления сайта, поменять пароль в аналогичной таблице обновленного сайта.
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?
5 февраля 2012 в 1:50 (GMT+6)
Обновил вручную WP до версии 3.3.1. Всё прошло нормально, но появилась проблема с кодировкой в тайтлах рубрик и категорий.
Стоят плагины:
.html on PAGES
All in One SEO Pack
Google XML Sitemaps
Peter’s Custom Anti-Spam
RusToLat
Subscribe To Comments
Widget Logic
Yet Another Related Posts Plugin
Подскажите, пожалуйста, как решить эту проблему! Заранее благодарю!