• Обновление phpBB 3.0 до 3.1

 #10094   IgorA100
 17 апр 2016, 00:47
После апгрейда до phpBB 3.1 предыдущие инсталляции MODификаций (MODs) и стилей станут неработоспособными!
phpBB 3.1 не совместима с 3.0 и большинство предыдущих файлов должны быть удалены перед обновлением до версии 3.1.
Для апгрейда предварительно необходимо выполнить следующие шаги:

A- Подготовка
  1. Заархивировать все файлы форума и базу данных
  2. Скачать полный пакет инсталяции
  3. Разархивировать дистрибутив на компьютер и открыть phpBB директорию
  4. Удалить файл "config.php", директории "/images" и "/files" из дистрибутива
  5. Панель администрирования (ACP) > Общие > Конфигурация > Настройки конференции, установить стиль по умолчанию "prosilver"
    Стиль конференции по умолчанию: prosilver
    Заменять стиль пользователя: Да
  6. Если включены средства борьбы со спам ботами: Панель администрирования (ACP) > Общие > Конфигурация > Средства против спам-ботов, то включенный плагин должен быть из стандартного набора: GD картинка, GD 3D картинка, Простая картинка, Текстовое подтверждение, или reCaptcha

B- Очистить
Если Вы устанавливали MODы, то необходимо удалить их из базы данных
  1. Скачать и разархивировать Support Toolkit. При этом необходимо выбрать именно ту версию "Support Toolkit" которая предназначена к вашей версии установленного форума.
  2. Загрузить директорию "stk" из развернутого архива в корневую папку вашего форума на хостинге.
  3. Перейти по ссылке: "http://www.example.com/yourforum/stk", если необходимо, то залогиньтесь.
  4. Выберите в навигационном меню "SUPPORT TOOLS > Database Cleaner" и запустите очистку. Таким образом Вы удалите все нестандартные столбцы и строки из БД . Так-же будет проверена вся структура БД, и в случае отсутствия необходимых элементов БД они будут добавлены.

C- Замена файлов
  1. Через FTP или SSH удалите файлы и директории от предыдущей инсталляции версии 3.0, за исключением файла "config.php", директории "/images", "/files" и "/store"
  2. При необходимости, Вы можете удалить директорию "/store/mods" (если она существует), которая содержит MOD пакеты при инсталляциях через AutoMOD
  3. Через FTP или SSH загрузите оставшиеся файлы и директории (со стадии iii выше) в корневую папку установленного форума на сервер. Если будут конфликты файлов или папок, необходимо заменить новыми.
  4. Зайдите по ссылке http://www.example.com/yourforum/instal ... update.php для обновления базы данных и завершения апгрейда.
  5. Через FTP или SSH удалите директорию " /install/ " из корневой папки куда установлен форум.

Замечание
  • Если Вы используете отличный от английского языка, то Вы должны будете найти новые языковые пакеты, загрузить их на сервер, и установить эти языки снова: ACP> Настройка> Язык Management> Языковые пакеты.
  • Используйте только хороший FTP или SSH-клиент, например, FileZilla, для передачи файлов. (Утилиты передачи файлов, присутствующие в панелях управления хостинга могут вызвать проблемы.)

* Если по какой-то причине для всех пользователей не установился стиль "prosilver" (пункт "v" выше), то для принудительного переключения стиля на дефолтный для всех пользователей необходимо выполнить на сервере специальный скрипт
Для чего необходимо в корневой директории форума создать файл "fixstyle.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.';
?>

и перейти по ссылке: http://www.example.com/yourforum/fixstyle.php

Возможные проблемы при апгрейде
https://www.phpbb.com/community/viewtop ... &t=2269131