Как корректно обновиться с 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 (см пункты про исправление кодировок)
Удачи!
Связанные записи
54 комментария
Страницы: « 1 [2] 3 » Show All
Трэкбеки и пингбеки
Страницы: « 1 [2] 3 » Show All
Комментарии не по теме удаляются! Читайте реадми дистрибутива, комментарии выше и FAQ! Прежде чем задавать вопрос, прочитайте это. Научитесь ценить чужое время!

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

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 и тоже никаких проблем не было. что то вы не то пишете