Страница 1 из 58

[FAQ] Как сконвертировать phpBB 3.0.х в phpBB 3.1.х

Добавлено: 23.03.2014 18:30
rxu
Перед принятием решения обязательно прочтите Мини [FAQ] по phpBB 3.1.x
  • Проверить свой сервер на соответствие: phpBB 3.1.x - системные требования.
  • Сделать бэкап ВСЕГО - и файлов, и базы данных, чтобы потом не было мучительно больно за бесцельно прожитые годы.
  • Переключить всех пользователей, включая себя, на стиль prosilver (phpBB 3.1.х должен делать это сам, но всё равно не повредит).
  • Удалить AutoMOD, если он был установлен, а также все "неродные" модули администраторского, модераторского, личного разделов, если таковые были установлены вместе с какими-либо модами. Удалить все "неродные" таблицы, "неродные" колонки из стандартных таблиц, права доступа если таковые были установлены вместе с какими-либо модами (кроме тех, для которых есть портированные расширения). Если это затруднительно сделать вручную, воспользуйтесь инструментом Support ToolKit (STK).
  • Удалить файлы phpBB 3.0, КРОМЕ:
    • config.php
    • папки /images
    • папки /files
    • папки /store
  • Скопировать все файлы phpBB 3.1 в папку, где находится phpBB 3.0 (кроме config.php)
  • Убедиться в наличии прав доступа к папкам store/, cache/, files/ и images/avatars/upload/ - 777, к файлу config.php - не ниже 666, и выставить таковые при необходимости.
  • Ввести в адресной строке и запустить /install/database_update.php (после имени домена и пути к форумам).
  • Удалить (или переименовать) папку /install, изменить права доступа к файлу config.php на 644.
  • Готово!
Замечание №1: все моды на новой конференции будут потеряны.
Замечание №2: стили для phpBB 3.0 несовместимы со стилями для phpBB 3.1. Если используется уникальный дизайн, его придется обновить или переписать для соответствия phpBB 3.1, иначе он будет потерян.


Перед обновлением обязательно сделать резервные копии всех файлов и базы данных.

Скачать русский пакет phpBB 3.1 можно в нашем разделе базовых пакетов на сайте.
========================
Команда для обновления базы данных с консоли которую надо выполнить из корневой директории конференции.

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

php ./bin/phpbbcli.php db:migrate --safe-mode
======================
Скрипт для установки всем пользователем стиля prosilver по умолчанию
Создайте файл fix.php в корневой директории форума, скопируйте туда код и запустите скрипт http://forum.ru/fix.php

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

<?php
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);

// Default style ID
$sql = 'SELECT config_value FROM ' . CONFIG_TABLE . " WHERE config_name = 'default_style'";
$result = $db->sql_query($sql);
$default_style_id = (int) $db->sql_fetchfield('config_value');
$db->sql_freeresult($result);

// Default style name
$sql = 'SELECT style_name FROM ' . STYLES_TABLE . ' WHERE style_id = ' . $default_style_id;
$result = $db->sql_query($sql);
$default_style_name = $db->sql_fetchfield('style_name');
$db->sql_freeresult($result);

// Active styles
$sql = 'SELECT style_id, style_name, style_active FROM ' . STYLES_TABLE;
$result = $db->sql_query($sql);
while ($row = $db->sql_fetchrow($result))
{
    $styles_list[] = $row;
}
$db->sql_freeresult($result);


echo 'Default style: ' . $default_style_name . ' (' . $default_style_id . ')<br />';

$exists = file_exists('./styles/' . $default_style_name . '/style.cfg');

if ($exists)
{
    echo 'Default style exists, no work to be done.';
    exit;
}

if (!file_exists('./styles/prosilver/style.cfg'))
{
    echo 'Prosilver does not exist. Please upload a copy of prosilver from the <a href="https://www.phpbb.com/downloads/">3.1.0 Full Package</a>.';
    exit;
}

$prosilver = array();
foreach ($styles_list as $style)
{
    if ($style['style_name'] == 'prosilver')
    {
        $prosilver = $style;
        break;
    }
}

// Install style if it doesn't exist
if (!sizeof($prosilver))
{
    $sql_ary = array(
        'style_name'        => 'prosilver',
        'style_copyright'    => '&copy; phpBB Group',
        'style_active'        => 1,
        'style_path'        => 'prosilver',
        'bbcode_bitfield'    => 'lNg=',
        'style_parent_id'    => '0',
        'style_parent_tree'    => '',
    );

    $sql = 'INSERT INTO ' . STYLES_TABLE . '
        ' . $db->sql_build_array('INSERT', $sql_ary);
    $db->sql_query($sql);

    $id = $db->sql_nextid();
    $prosilver = array(
        'style_name'    => 'prosilver',
        'style_id'        => $id,
        'style_active'    => 1,
    );

    echo 'Installed prosilver (' . $id . ').<br />';
}
else
{
    // Activate prosilver
    $sql = 'UPDATE ' . STYLES_TABLE . " SET style_active = 1 WHERE style_name = 'prosilver'";
    $db->sql_query($sql);
}

// Set it as the default style
$sql = 'UPDATE ' . CONFIG_TABLE . ' SET config_value = ' . $prosilver['style_id'] . " WHERE config_name = 'default_style'";
$db->sql_query($sql);
$cache->purge();
echo 'Set prosilver as the default style.<br />';

// Set all users' styles to prosilver
$sql = 'UPDATE ' . USERS_TABLE . ' SET user_style = ' . $prosilver['style_id'];
$db->sql_query($sql);
echo 'Updated user styles to prosilver.<br />';
echo 'Done.';
?>
==================================
Файл config.php от версии phpbb 3.1.x

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

<?php
// phpBB 3.1.x auto-generated configuration file
// Do not change anything in this file!
$dbms = 'phpbb\\db\\driver\\mysqli';
$dbhost = '';
$dbport = '';
$dbname = '';
$dbuser = '';
$dbpasswd = '';
$table_prefix = 'phpbb_';
$phpbb_adm_relative_path = 'adm/';
$acm_type = 'phpbb\\cache\\driver\\file';

@define('PHPBB_INSTALLED', true);
//@define('DEBUG', true);
//@define('PHPBB_DISPLAY_LOAD_TIME', true);
$dbname = 'имя_базы_данных';
$dbuser = 'пользователь_базы_данных';
$dbpasswd = 'пароль_базы_данных';
============

Re: Как сконвертировать phpBB 3.0 в phpBB 3.1

Добавлено: 23.03.2014 20:12
xisp
rxu писал(а):Замечание: все моды на новой конференции будут потеряны.
В БД их данные останутся? Поля там, таблицы.

Re: Как сконвертировать phpBB 3.0 в phpBB 3.1

Добавлено: 23.03.2014 20:19
rxu
Само собой. Скрипт апдейта БД не трогает неизвестные ему данные.

Re: Как сконвертировать phpBB 3.0 в phpBB 3.1

Добавлено: 23.03.2014 21:01
Пчелкин
Понятно... а ХТМЛ и КСС составляющая исчезнут? Дрянь дело...всех под гребенку...прощай дизайн и наработки?

Re: Как сконвертировать phpBB 3.0 в phpBB 3.1

Добавлено: 23.03.2014 21:13
rxu
Пчелкин писал(а):ХТМЛ и КСС составляющая исчезнут? Дрянь дело...всех под гребенку...прощай дизайн и наработки?
Не совсем. На странице загрузки Area51 можно скачать изменения для стилей с версии 3.0.12, или патч-файлы, и изменить наработанный стиль вручную.
Либо вообще использовать пакет автоматического обновления. Другое дело, что при этом внесенные модами от 3.0 изменения останутся на месте, и неизвестно, как это будет работать. Поэтому, если стиль кастомизированный, лучше апгрейдить только его, а ядро полностью заменить.

Re: Как сконвертировать phpBB 3.0 в phpBB 3.1

Добавлено: 24.03.2014 4:29
Пчелкин
rxu писал(а):и изменить наработанный стиль вручную.
Ура!!!!!!! Хоть какая-то надежда... Хорошо уже весна... пойду на фиг веревку закопаю...

ПыСЫ... Да не велико сложные патчи, воще то...

Re: Как сконвертировать phpBB 3.0 в phpBB 3.1

Добавлено: 24.03.2014 8:46
x00peR
rxu, а вообще планируются работы в сторону сохранения модов при конвертации?

Re: Как сконвертировать phpBB 3.0 в phpBB 3.1

Добавлено: 24.03.2014 9:02
Пчелкин
А при "ручной" чего им будет?

Re: Как сконвертировать phpBB 3.0 в phpBB 3.1

Добавлено: 24.03.2014 16:19
xisp
x00peR писал(а):rxu, а вообще планируются работы в сторону сохранения модов при конвертации?
Их не сохранить. Только ждать новой версии под 3.1 или переписывать самому. Автоматом никак.
Пчелкин писал(а):А при "ручной" чего им будет?
Плохо им будет. Движок переезжает на Симфонию, везде ООП и тому подобное, то есть типы данных уже другие, и обрабатывать их нужно по другому, старые методы наплодят ошибок.

Re: Как сконвертировать phpBB 3.0 в phpBB 3.1

Добавлено: 24.03.2014 16:49
Пчелкин
Пошел откапывать веревку...

Re: Как сконвертировать phpBB 3.0 в phpBB 3.1

Добавлено: 24.03.2014 16:50
xisp
Не беспокойтесь, многие моды обновят для совместимости с 3.1.

Re: Как сконвертировать phpBB 3.0 в phpBB 3.1

Добавлено: 24.03.2014 16:54
SmallAnton
Хватит мутить воду. Всё хорошо будет переедут моды как пить дать. А балаболов не слушайте.

Re: Как сконвертировать phpBB 3.0 в phpBB 3.1

Добавлено: 24.03.2014 16:55
x00peR
xisp писал(а):Не беспокойтесь, многие моды обновят для совместимости с 3.1.
В том то и дело, что многие. Есть же заброшенные моды их навряд ли кто то будет переделывать, хотя ...

Re: Как сконвертировать phpBB 3.0 в phpBB 3.1

Добавлено: 24.03.2014 17:00
Пчелкин
x00peR писал(а):Есть же заброшенные моды
И я о них...

Re: Как сконвертировать phpBB 3.0 в phpBB 3.1

Добавлено: 24.03.2014 17:05
Shredder
xisp писал(а): многие моды обновят для совместимости
Уверен, что многие?..
x00peR писал(а):Есть же заброшенные моды их навряд ли кто то будет переделывать
Причём, таких заброшенных - процентов 60 или 70.