Уважаемые пользователи!
C 7 ноября 2020 года phpBB Group прекратила выпуск обновлений и завершила дальнейшее развитие phpBB версии 3.2.
С 1 августа 2024 года phpBB Group прекращает поддержку phpBB 3.2 на официальном сайте.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.
С учетом этого, настоятельно рекомендуется обновить конференции до версии 3.3.

[FAQ] Как сконвертировать phpBB 2 в phpBB 3

Темы по наиболее часто задаваемым вопросам без привязки к версии phpBB. Читать в первую очередь!
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Мини [FAQ] по phpBB 3.1.x/3.2.x/3.3.x | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать расширения

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
dmsuslov
phpBB 1.0.0
Сообщения: 1
Стаж: 16 лет 9 месяцев

[FAQ] Как сконвертировать phpBB 2 в phpBB 3

Сообщение dmsuslov »

Кто-нибудь конвертировал сабж? У меня возникла проблема: получилось почти все, кроме кодировки символов :cry:
Старый форум (phpBB2) был в кодировке windows-1251, а новый в utf-8. Весь контент переносится в виде каких-то кракозябров...
Окунувшись в документацию, вычитал, что нужно поправить файл lang_main.php в старом форуме, а именно $lang['ENCODING']. Но изменения в нем влияют лишь на внешний вид кракозябров. Нормального текста контента добиться не удалось.

P.S.
phpBB2 2.0.20
phpBB3 3.0 RC3
  • С чего начать?
    Начните с "чистой" установки phpBB3 в отличный от phpBB2 каталог. Затем снова перейдите в баузере в каталог install и щёлкните по вкладке "Конвертирование".
  • Где почитать документацию по конвертированию на русском языке?
    http://www.vvvas.ru/it/phpbb/3.0/docs/I ... ml#convert
  • Изменяются ли в процессе конвертации содержимое и файлы phpBB2?
    В процессе конвертации не подвергаются изменениям ни таблицы phpBB2 в базе данных, ни исходные файлы phpBB2.
  • Старый форум находится по адресу: forum2.domen.ru, а новый по адресу: forum.domen.ru. При этом старый лежит в папке:
    /home/b/boshnet/forum2/public_html/ а новый в папке: /home/b/boshnet/forum/public_html/
    Какой относительный путь указать при конвертации?

    ../../forum2/public_html/
  • Сохранятся ли моды, которые были установлены в phpBB2, после конвертации в phpBB3?
    Будут сконвертированы только моды:
    - File Attachment Mod by Acyd Burn
    - Birthday by Niels
    - Birthdays by TerraFrost
  • Почему после конвертации в phpBB3 в сообщениях вместо русских букв - кракозябры?
    Вариант: кракозябры не везде, а только в сообщениях некоторых пользователей.
    Для корректного конвертирования необходимо, чтобы кодировка таблиц phpBB2 в базе данных соответствовала значению переменной $lang['ENCODING'] в файле language/lang_russian/lang_main.php. Варианты решения:
    1) Сложный. Переконвертировать содержимое базы данных в кодировку, указанную в переменной $lang['ENCODING'].
    2) Простой. Назначить переменной $lang['ENCODING'] значение, совпадающее с текущей кодировкой базы данных. При этом сообщения и другой контент на "старом" форуме могут стать нечитабельными, тем не менее, после конвертации читабельность восстановится.
    3) Альтернативный: http://www.phpbbguru.net/community/topi ... ml#p245047

    Перед конвертацией также рекомендуется проверить, какой язык по умолчанию установлен у всех пользователей, и изменить на русский, если это необходимо.
Аватара пользователя
Oleg NT
Former team member
Сообщения: 450
Стаж: 18 лет 3 месяца
Откуда: Нижний Тагил
Поблагодарили: 2 раза

Re: [FAQ] Конвертация phpBB2 > phpBB3

Сообщение Oleg NT »

Разрешение на запись у каталога с аватарами было установлено перед конвертированием?
Аватара пользователя
demonlibra
phpBB 2.0.2
Сообщения: 338
Стаж: 14 лет 6 месяцев
Откуда: Ростов-на-Дону
Благодарил (а): 24 раза
Поблагодарили: 38 раз

Re: [FAQ] Конвертация phpBB2 > phpBB3

Сообщение demonlibra »

Установку и конвертацию проводил на локальном денвере. Разрешение не причем.
Да и аватары прекрасно перенеслись в папку с phpBB 3.0.6.

Добавлено спустя 9 минут 48 секунд:
Установил рядом 3.0.5 и 3.0.6 и выполнил конвертацию из phpBB2. Содержимое папок с аватарами в 3.0.5 и 3.0.6 идентично.

Добавлено спустя 26 минут 2 секунды:
Строка 'avatar' в таблице 'users' имена файлов содержит.
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16370
Стаж: 17 лет 11 месяцев
Откуда: Красноярск
Благодарил (а): 521 раз
Поблагодарили: 1745 раз

Re: [FAQ] Конвертация phpBB2 > phpBB3

Сообщение rxu »

demonlibra
В 3.0.6 не выставлено запрета на какие-нибудь типы аватар?
Изображение
Аватара пользователя
demonlibra
phpBB 2.0.2
Сообщения: 338
Стаж: 14 лет 6 месяцев
Откуда: Ростов-на-Дону
Благодарил (а): 24 раза
Поблагодарили: 38 раз

Re: [FAQ] Конвертация phpBB2 > phpBB3

Сообщение demonlibra »

Спасибо за помощь.
В 3.0.6 в админке по умолчанию аватары не разрешены.
Аватара пользователя
ScorpAL
phpBB 1.2.1
Сообщения: 20
Стаж: 17 лет 5 месяцев

Re: [FAQ] Конвертация phpBB2 > phpBB3

Сообщение ScorpAL »

Форум работает вот уже несколько лет.

Сейчас это phpBB2

Исходные данные (то что я вижу в phpMyAdmin) на текущий момент:
1. MySQL - 5.0.32
2. phpMyAdmin - 2.8.2.4
3. MySQL charset: UTF-8 Unicode (utf8)
4. MySQL connection collation: utf8_general_ci
5. У всех таблиц форма Collation стоит utf8_general_ci
6. У филдов в таблице Collation стоит utf8_general_ci
7. При просмотре содержимого таблиц в phpMyAdmin русский текст видим таким: "Âîëîäüêà" (в оригинале "Володька")
8. В /forum/language/lang_russian стоит $lang['ENCODING'] = 'windows-1251';
9. В /forum/includes/db.php никаких лишних записей не стоит.

Внешне форум выглядит вполне себе читабельно.
Пользователи активно пользуются им. Посещаемость растет.

Несколько раз по всякому пытался переконвертировать форум.
Опытным путем выяснил что в моем случае нужно выполнить следующее:

Код: Выделить всё

UPDATE table SET filed = CONVERT(CONVERT(CONVERT(field USING latin1) USING binary) USING cp1251)
И так для каждого филда в каждой таблице.
После этого все русские записи в таблицах становятся читаемыми.

Но каждый филд в каждой таблице руками конвертить очень утомительно :(

Затем мне пришлось все филды с Collation = utf8_general_ci поменять ручками на Collation = cp1251_general_ci.
Опять же... уж очень утомительно всё это делать руками для каждого филда в каждой таблице :(
Подсмотрел в phpMyAdmin это пишется примерно так (на примере филда username в таблице phpbb_users):

Код: Выделить всё

ALTER TABLE `phpbb_users` CHANGE `username` `username` VARCHAR( 25 ) CHARACTER SET cp1251 COLLATE cp1251_general_ci NOT NULL
И только после этого можно смело запускать конвертацию форума с phpBB2 на phpBB3.
После конвертации - все выглядит на первый и второй взгляд очень даже хорошо.

Естественно ручками я все так и не переконвертил.
Делал все вышеописанное на копии базы и конечно же не на всех филдах и не на всех таблицах.
Так как времени и нервов на ручной "АЛЬТЕРИНГ" просто не хватает.
Да и пропустить что либо могу.

А теперь вопрос...

Подскажите, как автоматизировать весь этот процесс?
Как выполнить

Код: Выделить всё

UPDATE table SET filed = CONVERT(CONVERT(CONVERT(field USING latin1) USING binary) USING cp1251)
для всех филдов автоматом?
Как выполнить

Код: Выделить всё

ALTER TABLE `phpbb_users` CHANGE `username` `username` VARCHAR( 25 ) CHARACTER SET cp1251 COLLATE cp1251_general_ci NOT NULL
для всех филдов автоматом?
MAzZY
Бывший член :)
Сообщения: 2925
Стаж: 18 лет 11 месяцев
Благодарил (а): 20 раз
Поблагодарили: 30 раз
Забанен: Бессрочно

Re: [FAQ] Конвертация phpBB2 > phpBB3

Сообщение MAzZY »

А для чего Вы это делаете?
Аватара пользователя
ScorpAL
phpBB 1.2.1
Сообщения: 20
Стаж: 17 лет 5 месяцев

Re: [FAQ] Конвертация phpBB2 > phpBB3

Сообщение ScorpAL »

Для чего это делаю? Если "это" - это конвертация, то:
Ну хотя бы для того что бы вдохнуть в форум и его комьюнити новую жизнь.
Развивать ресурс на неподдерживающемся движке не вижу смыла...
Уже в тупике с некоторыми плагинами, аналогов которых в phpBB3 пока не видел (может плохо искал, например Garage).

Если "это" - это все вышеперчисленные пляски с бубном, то:
Потому что по умолчанию при ковертации из phpBB2 в phpBB3 получаю новый нечитаемый форум.
Кроме того, при одном из эксперименов некоторые юзернемы обрезались после некоторых букв (например Ш).
Т.е. тот самый вышеописанный механизм позволил мне вполне удачно сконвертировать экспериментальный (тестовый) форум.

По другому, у меня к сожалению не получается.
Поэтому и задал вопросы...

Добавлено спустя 13 минут 19 секунд:
Немного поэкспериментировав и погуглив появились некоторые успехи...

Код: Выделить всё

SELECT TABLE_NAME, COLUMN_NAME FROM information_schema.COLUMNS where TABLE_SCHEMA='your_db_name' and COLLATION_NAME like 'utf%' and TABLE_NAME like 'phpBB%'
Таким образом из information_schema смог вытянуть в две колонки все таблицы и филды таблиц с префиксом 'phpBB' у которых collation начинается на utf8.
VecH
phpBB 1.4.0
Сообщения: 37
Стаж: 16 лет 11 месяцев

Re: [FAQ] Конвертация phpBB2 > phpBB3

Сообщение VecH »

а не проще ли забэкапить базу в файл при помощи встроенного ? (который в амдинке)
потом создать правельную базу с правильными кодировками и восстановить туда ?

это нужно если базы были в каком нить latin и т.д.

потом конвертировать без проблем
я сделал так когда тоже мучался именно с такой же проблемой
Аватара пользователя
ScorpAL
phpBB 1.2.1
Сообщения: 20
Стаж: 17 лет 5 месяцев

Re: [FAQ] Конвертация phpBB2 > phpBB3

Сообщение ScorpAL »

Ну а дальше, думаю можно сгенерить новый запрос....

Код: Выделить всё

SELECT distinct CONCAT( 'UPDATE ' , TABLE_NAME , ' SET ' , COLUMN_NAME , ' = CONVERT(CONVERT(CONVERT(' , COLUMN_NAME , ' USING latin1) USING binary) USING cp1251);') FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = 'your_db_name' and COLLATION_NAME like 'utf%' and TABLE_NAME like 'phpBB%';
В результате получил кучу строк вида:

Код: Выделить всё

UPDATE phpbb_album SET pic_filename = CONVERT(CONVERT(CONVERT(pic_filename USING latin1) USING binary) USING cp1251);
UPDATE phpbb_album SET pic_thumbnail = CONVERT(CONVERT(CONVERT(pic_thumbnail USING latin1) USING binary) USING cp1251);
UPDATE phpbb_album SET pic_title = CONVERT(CONVERT(CONVERT(pic_title USING latin1) USING binary) USING cp1251);
UPDATE phpbb_album SET pic_desc = CONVERT(CONVERT(CONVERT(pic_desc USING latin1) USING binary) USING cp1251);
и так далее....
Собственно Все это можно положить в один SQLник и выполнить. Тем самым автоматизируем шаг №1 по приведению в порядок всех филдов перед конвертацией форума.

Добавлено спустя 5 минут 30 секунд:
VecH писал(а):а не проще ли забэкапить базу в файл при помощи встроенного ? (который в амдинке)
потом создать правельную базу с правильными кодировками и восстановить туда ?
Нет... для меня это не оказалось проще... Постоянно натыкаюсь то на тайм ауты, то на битые архивы, то на еще какие либо подвохи... Да и долго это как то у меня получалось :(
Кроме того, на сколько я понял встроенный бэкапит только "родные" таблицы. А у меня есть еще куча таблиц с данными оставшихся от всевозможных модификаций, и терять их не хочу.
VecH писал(а): это нужно если базы были в каком нить latin и т.д.

потом конвертировать без проблем
я сделал так когда тоже мучался именно с такой же проблемой
Похоже именно в latin у меня все данные и забиты.
MAzZY
Бывший член :)
Сообщения: 2925
Стаж: 18 лет 11 месяцев
Благодарил (а): 20 раз
Поблагодарили: 30 раз
Забанен: Бессрочно

Re: [FAQ] Конвертация phpBB2 > phpBB3

Сообщение MAzZY »

ScorpAL, а вот это не помогает?
dmsuslov писал(а):Почему после конвертации в phpBB3 в сообщениях вместо русских букв - кракозябры?
Вариант: кракозябры не везде, а только в сообщениях некоторых пользователей.
Для корректного конвертирования необходимо, чтобы кодировка таблиц phpBB2 в базе данных соответствовала значению переменной $lang['ENCODING'] в файле language/lang_russian/lang_main.php. Варианты решения:
1) Сложный. Переконвертировать содержимое базы данных в кодировку, указанную в переменной $lang['ENCODING'].
2) Простой. Назначить переменной $lang['ENCODING'] значение, совпадающее с текущей кодировкой базы данных. При этом сообщения и другой контент на "старом" форуме могут стать нечитабельными, тем не менее, после конвертации читабельность восстановится.
3) Альтернативный: http://www.phpbbguru.net/community/topi ... ml#p245047
VecH
phpBB 1.4.0
Сообщения: 37
Стаж: 16 лет 11 месяцев

Re: [FAQ] Конвертация phpBB2 > phpBB3

Сообщение VecH »

Кроме того, на сколько я понял встроенный бэкапит только "родные" таблицы. А у меня есть еще куча таблиц с данными оставшихся от всевозможных модификаций, и терять их не хочу.
А какой резон их оставлять если в 3-ей версии они без надобности ?
Аватара пользователя
ScorpAL
phpBB 1.2.1
Сообщения: 20
Стаж: 17 лет 5 месяцев

Re: [FAQ] Конвертация phpBB2 > phpBB3

Сообщение ScorpAL »

ScorpAL, а вот это не помогает?
1) Сложный. Переконвертировать содержимое базы данных в кодировку, указанную в переменной $lang['ENCODING'].
Каким образом?
Сейчас я и пытаюсь привести в порядок кодировку в базе, пускай даже только в экспериментальной, которая будет удалена.
Потому что не знаю в какой кодировке у меня хранятся записи. Дампить не могу (нет сил и времени на многомегабайтные полотна SQL содержимого)... писал об этом выше.
2) Простой. Назначить переменной $lang['ENCODING'] значение, совпадающее с текущей кодировкой базы данных. При этом сообщения и другой контент на "старом" форуме могут стать нечитабельными, тем не менее, после конвертации читабельность восстановится.
Не могу вспомнить в чем у меня здесь была проблема. Не получилось в общем.
3) Альтернативный: topic15577-825.html#p245047
А здесь у меня возникли проблемы с дампером, который кроме многомегабайтного дампа создавал еще несколько своих файлов с рутовыми правами. Естественно без помощи сотрудников хостера удалить я эти дампы не мог. А в процессе экспериментов доставать людей каждые 10 минут звонками не могу.
Кроме того, в этом маленьком мануале описано создание дампов как дампером, так и самим форумом... А вот какой из дампов импортировать в шаге 6 - не сказано.

Так же:
P.S. смысл всех этих операций простой: выдернуть базу средствами самого форума потому что он кодировки и кирилический текст читает из базы нормально и экспортирует ее в cp1251 кодировке.
а я писал
на сколько я понял встроенный бэкапит только "родные" таблицы. А у меня есть еще куча таблиц с данными оставшихся от всевозможных модификаций, и терять их не хочу.
Добавлено спустя 4 минуты 49 секунд:
VecH писал(а):
Кроме того, на сколько я понял встроенный бэкапит только "родные" таблицы. А у меня есть еще куча таблиц с данными оставшихся от всевозможных модификаций, и терять их не хочу.
А какой резон их оставлять если в 3-ей версии они без надобности ?
А они и в "голой" версии 2 не нужны были.
Зачем выбрасывать накопленный контент если его можно будет использовать в дальнейшем?

Надеюсь все же что либо использовать в версии 3.
Хотя бы часть перебросить в кастомные филда профайлов пользователей.
MAzZY
Бывший член :)
Сообщения: 2925
Стаж: 18 лет 11 месяцев
Благодарил (а): 20 раз
Поблагодарили: 30 раз
Забанен: Бессрочно

Re: [FAQ] Конвертация phpBB2 > phpBB3

Сообщение MAzZY »

ScorpAL писал(а):Каким образом?
Если мы говорим об одном, то вот:
http://www.google.ru/search?q=%D1%81%D0 ... nt=firefox

А чтобы уменьшить дамп можно сделать следующее:
1) очистить поисковые записи. На новом форуме все равно их надо снова создавать
2) неродные таблицы извлечь отдельно и удалить из общей базы. Потом восстановить по мере необходимости, уже после конвертации.
Аватара пользователя
ScorpAL
phpBB 1.2.1
Сообщения: 20
Стаж: 17 лет 5 месяцев

Re: [FAQ] Конвертация phpBB2 > phpBB3

Сообщение ScorpAL »

В целом согласен.
"Неродные" то таблицы для ковертации в phpBB3 мне и не нужны...
Однако ситуация не легче...
1) очистить поисковые записи. На новом форуме все равно их надо снова создавать
Разумеется очистил.

Только архив с полным бэкапой средствами самого phpBB приходит ко мне битым (~29.5Mb).
Если делать арзив структуры - то все ок. Как в арзиве так и без него... А вот gzip для полной копии бьется и все....
MAzZY
Бывший член :)
Сообщения: 2925
Стаж: 18 лет 11 месяцев
Благодарил (а): 20 раз
Поблагодарили: 30 раз
Забанен: Бессрочно

Re: [FAQ] Конвертация phpBB2 > phpBB3

Сообщение MAzZY »

ScorpAL писал(а):Только архив с полным бэкапой средствами самого phpBB приходит ко мне битым (~29.5Mb).
Видимо, скрипту не хватает времени на выполнение.
Пробуйте через phpMyAdmin делать дамп. Либо техподдержку хостера попросить - они отдадут нормальный дамп.
Перенесено из форума FAQ (phpBB 3.0.x) в форум FAQ 10.06.2015 18:34 модератором rxu

Вернуться в «FAQ»