Как обновить форум phpbb3 патчем ручного обновления
Добавлено: 17 дек 2015, 17:26
Всем доброго времени суток, сегодня мы поговорим о обновлении форумов phpbb3 патчем ручного обновления
Надеюсь всем известно о том, что форумы phpbb3 можно обновлять двумя способами - ручным и автоматическим, а можно и не обновлять вообще Собственно уже написана мною инструкция , данное обновление рассчитано на всех админов, не зависимо от их познания движка ибо требует минимальных телодвижений от того, кто проводит обновление и сводит проблемность обновления к нулю.
Но существует обратная сторона автоматического обновления - непрозрачность. Наверняка мало кто при обновлении раскрывает спойлеры, смотрит какие конфликтные места имели место и как итог - некоторые моды перестают работать, ручные правки затираются и так далее... Это конечно относится к менее опытным администраторам.... Ну и большущий минус - сторонние стили, имеющие имена отличные от prosilver или subsilver2 попросту не обновляются. Для обновления в пределах одной-двух версий это не критично, а если обновляться, допустим, с 3.0.1 до актуальной? Ага, то то же, возникает резонный вопрос - что делать? А тут на помощь приходит ручное обновление движка, вернее частичное обновление....
В свою очередь ручное обновление рассчитано на более опытных и усидчивых администраторов, ведь при обновлении с очень ранних версий необходимо большое количество часов вдумчивых правок, но в данном случае вы можете быть уверены в том, что моды останутся рабочими, стиль будет обновлен.... Но опять таки же при условии того, что вы все правильно отредактировали... Давайте теперь более предметно поглядим на ручное обновление...
Свод своеобразных правил и действий при обновлении:.patch и папочка install , которую вы закидываете в корень форума и не трогаете. В целом обновление делится на 2 части, первая - правка файлов согласно выбранному файлу .patch и вторая - обновление базы данных, которое выполняется СТРОГО после всех правок файлов путем перехода в браузерной строке по адресу
После выполнения этих 2-х частей папка install удаляется с сервера и обновление завершено, надеюсь успешно
Теперь непосредственно о самом обновлении и правке файлов. Качаете архив с патчами, выбираете нужный вам патч и открываете его в Notepad++.
1. Как узнать какой файл открывать?
Проще простого, по всему файлу вам будут встречаться похожие строки
Так вот для данной строки, /adm/index.php и есть путь и сам файл, который необходимо редактировать
2. Узнал файл, открыл, что делать дальше?
Каждая правка отделяется от предыдущей множеством звездочек - *****. К примеру вот одна правка
Так же там же указываются примерные номера строк, где может находиться этот код. Вцелом есть три типа действий - удалить, добавить, отредактировать по примеру.
Тут совсем просто, для начала определяемся на основеprosilver или subsilver ваш стиль, к примеру на просильвере у вас. Значит в патч-файле ищем первое упоминание о папке с именем prosilver . Нашли? Вот все последующие правки имеющие в адресе файла имя prosilver вы должны применить именно к своему стилю, допустим править нужно
А вы открываете файл своего стиля
И делаете указанные правки.
В случае обновления ТОЛЬКО стиля (когда сам движок обновлен автоматическим патчем) папкуinstall не нужно закидывать на сервер и НЕ нужно запускать обновление базы данных
Как итог по завершению правок файлов вы запускаете скрипт обновления базы данных, получаете положительный ответ и радуетесь тому, что смогли обновиться.... Успехов, не знаю даже что еще добавить
Предисловие
Надеюсь всем известно о том, что форумы phpbb3 можно обновлять двумя способами - ручным и автоматическим, а можно и не обновлять вообще Собственно уже написана мною инструкция , данное обновление рассчитано на всех админов, не зависимо от их познания движка ибо требует минимальных телодвижений от того, кто проводит обновление и сводит проблемность обновления к нулю.
Но существует обратная сторона автоматического обновления - непрозрачность. Наверняка мало кто при обновлении раскрывает спойлеры, смотрит какие конфликтные места имели место и как итог - некоторые моды перестают работать, ручные правки затираются и так далее... Это конечно относится к менее опытным администраторам.... Ну и большущий минус - сторонние стили, имеющие имена отличные от prosilver или subsilver2 попросту не обновляются. Для обновления в пределах одной-двух версий это не критично, а если обновляться, допустим, с 3.0.1 до актуальной? Ага, то то же, возникает резонный вопрос - что делать? А тут на помощь приходит ручное обновление движка, вернее частичное обновление....
В свою очередь ручное обновление рассчитано на более опытных и усидчивых администраторов, ведь при обновлении с очень ранних версий необходимо большое количество часов вдумчивых правок, но в данном случае вы можете быть уверены в том, что моды останутся рабочими, стиль будет обновлен.... Но опять таки же при условии того, что вы все правильно отредактировали... Давайте теперь более предметно поглядим на ручное обновление...
Ручное обновление. Основные аспекты
Свод своеобразных правил и действий при обновлении:
- Перед обновлением обязательно сделать полное резервное копирование для экономии времени и нервов в случае провального обновления. Все это описано в первых 2-х пунктах
- Отключите форум в настройках в администраторском разделе, незачем кому то шастать по форуму в такое неподходящее время
- Все правки в файлах осуществляются с помощью программы
- В то время как вы делаете правки, не ходите на форум, да, будет куча ошибок, но изза того что вы не до конца завершили обновление, посему не пугайтесь и не останавливайтесь
Код: Выделить всё
http://адрес форума/install/database_update.php
Ручное обновление. Основные варианты правок файлов
Теперь непосредственно о самом обновлении и правке файлов. Качаете архив с патчами, выбираете нужный вам патч и открываете его в Notepad++.
1. Как узнать какой файл открывать?
Проще простого, по всему файлу вам будут встречаться похожие строки
Код: Выделить всё
diff -x images -crNEB release-3.0.13-PL1/adm/index.php release-3.0.14/adm/index.php
2. Узнал файл, открыл, что делать дальше?
Каждая правка отделяется от предыдущей множеством звездочек - *****. К примеру вот одна правка
Код: Выделить всё
***************
*** 524,529 ****
--- 524,532 ----
$cfg_array[$config_name] = trim($destination);
+ // Absolute file path
+ case 'absolute_path':
+ case 'absolute_path_writable':
// Path being relative (still prefixed by phpbb_root_path), but with the ability to escape the root dir...
case 'path':
case 'wpath':
***************
- Удалить
Обозначается знаком- напротив строк, которые нужно ПОЛНОСТЬЮ удалить, для примера можно взять такую правкуИ она будет значить - удалить полностью строкиКод: Выделить всё
*************** *** 524,529 **** --- 524,532 ---- $cfg_array[$config_name] = trim($destination); - // Absolute file path - case 'absolute_path': - case 'absolute_path_writable': // Path being relative (still prefixed by phpbb_root_path), but with the ability to escape the root dir... case 'path': case 'wpath': ***************
Из указанного файлаКод: Выделить всё
// Absolute file path case 'absolute_path': case 'absolute_path_writable':
- Добавить
Полностью противоположное действию Удалить. Обозначается плюсиком+ , для примераИ это значит что нам надо найти строкуКод: Выделить всё
*************** *** 524,529 **** --- 524,532 ---- $cfg_array[$config_name] = trim($destination); + // Absolute file path + case 'absolute_path': + case 'absolute_path_writable': // Path being relative (still prefixed by phpbb_root_path), but with the ability to escape the root dir... case 'path': case 'wpath': ***************
И добавить после нееКод: Выделить всё
$cfg_array[$config_name] = trim($destination);
Код: Выделить всё
// Absolute file path case 'absolute_path': case 'absolute_path_writable':
- Отредактировать по примеру
Данное действие обозначается восклицательным знаком! и значит то, что нужно внимательно приглядеться и найти отличия между старым и новым кодом и внести такую же правку. К примеруВ данном примереКод: Выделить всё
*************** *** 25,31 **** */ // phpBB Version ! define('PHPBB_VERSION', '3.0.13-PL1'); // QA-related // define('PHPBB_QA', 1); --- 25,31 ---- */ // phpBB Version ! define('PHPBB_VERSION', '3.0.14'); // QA-related // define('PHPBB_QA', 1);
Это старый код, аКод: Выделить всё
*/ // phpBB Version define('PHPBB_VERSION', '3.0.13-PL1'); // QA-related // define('PHPBB_QA', 1);
То что должно получиться в итоге, тобишь вы приглядываетесь к строке, напротив которой стоит восклицательный знак, смотрите как было и как должно получиться и делаете в своем файле так же.Код: Выделить всё
*/ // phpBB Version define('PHPBB_VERSION', '3.0.14'); // QA-related // define('PHPBB_QA', 1);
Ручное обновление стиля
Тут совсем просто, для начала определяемся на основе
Код: Выделить всё
diff -x images -crNEB release-3.0.13-PL1/styles/prosilver/imageset/imageset.cfg release-3.0.14/styles/prosilver/imageset/imageset.cfg
Код: Выделить всё
/styles/prosilver/imageset/imageset.cfg
Код: Выделить всё
/styles/ваш стиль/imageset/imageset.cfg
В случае обновления ТОЛЬКО стиля (когда сам движок обновлен автоматическим патчем) папку
Как итог...
Как итог по завершению правок файлов вы запускаете скрипт обновления базы данных, получаете положительный ответ и радуетесь тому, что смогли обновиться.... Успехов, не знаю даже что еще добавить