Это ремейк на статью об обновлении форума phpBB3, интегрированного в Drupal, до версии 3.0.7-PL1. Оригинальная документация содержит всю необходимую информацию, но она несколько разрознена и написана на вражеском языке. Автору было удобнее делать обновление именно по этой русской и адаптированной инструкции. Здесь рассматривается одновременное обновление как самого форума, так и модуля интеграции с Drupal.

План действий вкратце

Сделать резервную копию файлов и БД на хостинге.
Скачать новые версии форума phpBB3 и модуля интеграции для Drupal.
Русифицировать форум phpBB3 и пропатчить для интеграции с Drupal.
Обновить сайт.

Порядок действий по шагам

1. Делаем резервные копии:
- файлов
В панели управления хостинга в Диспетчере файлов архивируем каталоги /drupal/phpBB3 и /drupal/sites/all/modules/phpbbforum. Сохраняем архивы на своем ПК и сразу удаляем с хостинга, чтобы не мешались и место не занимали.
- БД
У меня таблицы форума хранятся в отдельной БД, поэтому в phpMyAdmin создаем копии обеих БД с помощью закладки Экспорт каждой из этих баз.

2. Скачиваем phpBB3 версии 3.0.8 с оригинального сайта phpbb.com. Там же берем языковый пакет для своего языка.
Извлекаем архив форума в каталог \phpBB3.

3. Для поддержки phpBB3 версии 3.0.8 скачиваем с drupal.org модуль phpbbforum версии 6.x-2.0-rc1 (или более поздний).
Извлекаем его в отдельный каталог \phpbbforum.

4. Копируем содержимое каталога модуля ...\phpbbforum\contrib\phpbbdrupal\root\styles в каталог форума \phpBB3\styles.
там дополнительные стили для встроенного режима работы.

5. Копируем каталог ...\phpbbforum\contrib\phpbbdrupal\images сразу на хостинг в корень Drupal.
Вместо этого можно скопировать файл \images\spacer.gif в любое другое место, но указать потом путь к нему в файле
phpBB3\styles\prosilver-embed\template\editor.js в функции colorPalette(dir, width, height) (строка 335).

6. Из языкового пакета копируем:
- папку \language в каталог \phpBB3;
- папку \styles\prosilver\imageset\ru в каталоги \phpBB3\styles\prosilver-embed\imageset и в \phpBB3\styles\prosilver\imageset;
- папку \styles\subsilver2\imageset\ru в каталоги \phpBB3\stylessubsilver2-embed\imageset и в \phpBB3\styles\subsilver2\imageset.

7. Патчим phpBB3 для интеграции интерфейса форума в дизайн сайта. Если у вас при выполнении команды patch в командной строке Windows выдается сообщение "'patch' не является внутренней или внешней командой, исполняемой программой или пакетным файлом.", то читаем статью "Выполняем patch под Windows"
Для выполнения патча копируем файл \phpbbforum\contrib\phpbbdrupal\root\phpBB-embed-3.0.8.patch в каталог \phpBB3, открываем командную строку (cmd) в этом каталоге и выполняем команду:

patch -p0 < phpBB-embed-3.0.8.patch

Смотрим на результаты её выполнения. Если в ответе сообщение об ошибке:

patching file './faq.php'
Assertion failed: hunk, file patch.c, line 321
This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.

То необходимо пересохранить патч текстовым редактором, который поменяет никсовые переводы каретки на стиль windows. Для этого подойдет практически любой кроме штатного Блокнота, например, AkelPad или Rapid CSS. После пересохранения размер файла phpBB-embed-3.0.8.patch должен немного увеличиться. Если команда обрабатывается нормально, то в ответе мы видим следующее:

..\phpBB3>patch -p0 < phpBB-embed-3.0.8.patch
patching file `./faq.php'
Hunk #1 FAILED at 2.
1 out of 2 hunks FAILED -- saving rejects to ./faq.php.rej
patching file `./feed.php'
patching file `./includes/functions_display.php'
patching file `./includes/functions_messenger.php'
patching file `./includes/functions_module.php'
Hunk #1 FAILED at 2.
1 out of 3 hunks FAILED -- saving rejects to ./includes/functions_module.php.rej

patching file `./includes/functions.php'
patching file `./includes/functions_user.php'
patching file `./includes/mcp/mcp_ban.php'
Hunk #1 FAILED at 2.
1 out of 2 hunks FAILED -- saving rejects to ./includes/mcp/mcp_ban.php.rej
patching file `./includes/mcp/mcp_forum.php'
Hunk #1 FAILED at 2.
1 out of 2 hunks FAILED -- saving rejects to ./includes/mcp/mcp_forum.php.rej
patching file `./includes/mcp/mcp_front.php'
Hunk #1 FAILED at 2.
1 out of 2 hunks FAILED -- saving rejects to ./includes/mcp/mcp_front.php.rej
patching file `./includes/mcp/mcp_main.php'
patching file `./includes/mcp/mcp_notes.php'
Hunk #1 FAILED at 2.
1 out of 2 hunks FAILED -- saving rejects to ./includes/mcp/mcp_notes.php.rej
patching file `./includes/mcp/mcp_pm_reports.php'
Hunk #1 FAILED at 2.
1 out of 2 hunks FAILED -- saving rejects to ./includes/mcp/mcp_pm_reports.php.r
ej
patching file `./includes/mcp/mcp_post.php'
patching file `./includes/mcp/mcp_queue.php'
patching file `./includes/mcp/mcp_reports.php'
patching file `./includes/mcp/mcp_topic.php'
patching file `./includes/mcp/mcp_warn.php'
Hunk #1 FAILED at 2.
1 out of 4 hunks FAILED -- saving rejects to ./includes/mcp/mcp_warn.php.rej
patching file `./includes/session.php'
patching file `./includes/ucp/ucp_confirm.php'
Hunk #1 FAILED at 2.
1 out of 2 hunks FAILED -- saving rejects to ./includes/ucp/ucp_confirm.php.rej
patching file `./includes/ucp/ucp_groups.php'
patching file `./includes/ucp/ucp_main.php'
patching file `./includes/ucp/ucp_pm_compose.php'
patching file `./includes/ucp/ucp_pm.php'
Hunk #1 FAILED at 1.
1 out of 7 hunks FAILED -- saving rejects to ./includes/ucp/ucp_pm.php.rej
patching file `./includes/ucp/ucp_pm_viewmessage.php'
patching file `./includes/ucp/ucp_profile.php'
patching file `./includes/ucp/ucp_register.php'
patching file `./index.php'
patching file `./mcp.php'
Hunk #1 FAILED at 2.
1 out of 2 hunks FAILED -- saving rejects to ./mcp.php.rej
patching file `./memberlist.php'
patching file `./posting.php'
patching file `./report.php'
Hunk #1 FAILED at 2.
1 out of 2 hunks FAILED -- saving rejects to ./report.php.rej
patching file `./search.php'
patching file `./ucp.php'
patching file `./viewforum.php'
patching file `./viewonline.php'
Hunk #1 FAILED at 2.
1 out of 4 hunks FAILED -- saving rejects to ./viewonline.php.rej
patching file `./viewtopic.php'

Просматривая результаты выполнеия команды patch, видим несколько сообщений об ошибках со словом "FAILED". Само по себе это не хорошо, но просмотрев все вновь образовавшиеся файлы с расширением .rej, обнаруживаем, что во всех одно и тоже:

***************
*** 2,8 ****
  /**
  *
  * @package phpBB3
- * @version $Id: phpBB-embed-3.0.8.patch,v 1.1 2010/11/24 20:46:09 vb Exp $
  * @copyright (c) 2005 phpBB Group
  * @license http://opensource.org/licenses/gpl-license.php GNU Public License
  *
--- 2,8 ----
  /**
  *
  * @package phpBB3
+ * @version $Id: phpBB-embed-3.0.8.patch,v 1.1 2010/11/24 20:46:09 vb Exp $
  * @copyright (c) 2005 phpBB Group
  * @license http://opensource.org/licenses/gpl-license.php GNU Public License
  *

Программа не нашла строку с версией и не смогла её заменить. На работе форума это не должно никак отразиться. Смело удаляем все файлы с расширением .rej и сам файл phpBB-embed-3.0.8.patch из каталога \phpBB3, он нам больше не нужен. Также удаляем на своем ПК каталог \phpbbforum\contrib.

8. На хостинге удаляем содержимое подкаталога /phpBB3, оставив в нем только каталоги /files, /images и файл config.php.

9. На своем ПК из каталога \phpBB3 удаляем файл config.php, чтобы не затереть им одноименный файл на хостинге и архивируем получивщийся каталог \phpBB3, копируем архив на хостинг и распаковываем там в корень Друпала (т.е. на прежнее место).

10. Устанавливаем (проверяем) права 777 на каталоги: /store, /cache, /files и /images/avatars/upload.

11. Запускаем в браузере http://mydomain.ru/phpBB3/install/database_update.php. Форум обновлен.

12. В панели управления сайтом на странице http://mydomain.ru/admin/build/modules отключаем модуль интеграции phpBBforum. Затем удаляем с хостинга его каталог /sites/all/modules/phpbbforum.

13. На своем ПК архивируем папку \phpbbforum, копируем архив на хостинг в каталог /sites/all/modules и распаковываем его там.

14. На странице http://mydomain.ru/admin/build/modules нажимаем F5 и снова подключаем модуль phpBBforum. Запускаем http://mydomain.ru/update.php.

15. Переходим на http://mydomain.ru/admin/settings/phpbbforum и проверяем, нет ли сообщений об ошибках. Если нужно, изменяем параметры форума.

16. На странице http://mydomain.ru/admin/user/permissions проверяем, чтобы для анонимных пользователей в разделе "модуль phpbbforum" были отмечены пункты:
- access phpBB comments,
- access phpBB forum.
Иначе незарегистрированные пользователи при попытке перейти на форум получат сообщение о том, что им запрещен доступ к этому разделу.

Теперь сам форум и модуль интеграции обновлены.

Для тех, у кого нет желания повторять все описанные выше манипуляции во вложении находится русифицированный и пропатченный для Drupal форум phpBB-3.0.8.

ВложениеРазмер
Package icon phpBB3-308-ru-drupal.zip2.93 MB

Рубрики: 

Ярлыки: 

Комментарии