![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| americanets |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1100 Регистрация: 27.9.2006 Репутация: 1 Всего: 12 |
как сделать такую вещь: есть система CMS в интернете, в ней кнопку обновить и она закачивает на сервер файлы с сервера обнавлений, требуемые в данный момент, и по возможности сделать оповещение что обновления существуют
-------------------- Пусть популярную музыку слушают те, среди кого она популярна |
|||
|
||||
| Farik |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 49 Регистрация: 1.2.2005 Репутация: нет Всего: 1 |
В зависимости от необходимости делать откат(то есть новый билд "не приживается на сервере" и необходимо вернуться к последней работающей версии) есть два решения:
1. БЕЗ отката, очень простой: version.php на сервере апдейтов возвращяет только номер текущий билда. В случае, если билд на клиентском сервере не соответсвует - пользователь может нажать на кнопочку, которая качает и распаковывает архив с новой версией скрипта поверх старой. В самом скрипте жёстко зашита его версия, то есть он точно знает, какую цифру должен вернуть version.php. 2. С откатом, поддержкой частичного апдейта(модульности) а. Пробегаемся по всем файлам скрипта, сохраняем в БД хеши файлов. б. Пробегаемся по хешам файлов, генерим суммарный хеш билда. в. Запрашиваем хеш билда с сервера, если совпадает, то с радостью отвечаем, что версия последняя, если нет - то идём дальше. г. Запрашиваем полную карту хешей с сервера, сравниваем со своими хешами файлов. д. Запрашиваем у сервера "патч" с файлами, отличающимися от наших. В случае модульной структуры(потребуется генерить не только хеши файлов и билда, но и хеши модулей в отдельности) можем спросить у пользователя, какие новые модули из списка он хочет скачать или какие модули из списка он хочет обновить. Естетсвенно на сервере может храниться детальная инфомация о конкретных модулях и их апдейтах. е. Генерим бекап с файлами, отличными от серверных. ж. Распаковываем патч поверх существующего скрипта. з. В случае необходимости откатываемся к одному из бекапов(в случае если есть необходимость откатиться более чем на один бекап придётся писать механизм, позволяющий определить очерёдность восстановления бекапов) Это сообщение отредактировал(а) Farik - 12.1.2007, 11:51 |
|||
|
||||
| americanets |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1100 Регистрация: 27.9.2006 Репутация: 1 Всего: 12 |
ушол думать
-------------------- Пусть популярную музыку слушают те, среди кого она популярна |
|||
|
||||
| Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 8 Всего: 261 |
Для CMS - лишнее. Лучше заказчикам письмо с текстом отсылать.
|
|||
|
||||
| awers |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1465 Регистрация: 22.3.2006 Где: Россия, Таганрог Репутация: нет Всего: 31 |
а почему собстно лишнее? думаю это было-бы правилом хорошего тона, предаставить клиенту updates pack как к обыкновенной софтине...
|
|||
|
||||
| Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 8 Всего: 261 |
Это ИМХО, возможно что я просто привык не видеть такой фишки...
Она вроде как была в IPB, но к примеру в админку я туда редко захожу. |
|||
|
||||
| Nicholas_S |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 486 Регистрация: 12.10.2006 Где: Санкт-Петербург Репутация: нет Всего: 19 |
Мы реализовали в своей системе метод, похожий на тот, что предложил Farik.
Обновления делаются в полностью автоматическом режиме (с некоторой интерактивностью), с возможностью отката и выводом прогресса/статистики и др. Очень удобно и приятно. Пришлось решить ряд проблем, но пока все тип-топ. Единственная существующая задача - это пересечение с поддержкой многосайтовости у одной копии системы. Решаем в данный момент. -------------------- ...все в мире относительно |
|||
|
||||
| Diesel Draft |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 876 Регистрация: 18.1.2005 Где: Lviv, Ukraine Репутация: нет Всего: 5 |
Мне кажется, это зависит от движка. Самый простой способ обновления это качаешь пакет обновления, пакуешь старую версию (бекап), удаляешь старый скрипт и ставишь новый. Но здесь проблема совместимости. Ну, например, изменилась БД. Другой способ это качать по маске. Например, есть система на сервере, откуда качают, которая вычисляет какие файлы, изменились, и дает список, также скрипт который переделает БД или настройки уже на месте. При этом можно использовать поэтапную установку (версия1 – версия2 – версия3 - …). Этот вариант долгий но надежней, при этом навряд ли у кого то будет сильно отличатся версия, разве что пиратская
|
|||
|
||||
| Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 8 Всего: 261 |
Это - плохой вариант. А шаблоны, дизайн, как правило настраиваются под себя..
Мне в этом плане нравится политика IPB, они апдейты - показывают: что где добавить, что где заменить. Вариант обновленя файлов - отчасти хорош, но файлы ядра системы и модулей должны полностью быть независимы от шаблонов, плюс, должна быть четкая иерархия версий. |
|||
|
||||
| Nicholas_S |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 486 Регистрация: 12.10.2006 Где: Санкт-Петербург Репутация: нет Всего: 19 |
согласен. Мы примерно так и распределили.
Есть возможность, конечно, вручную обновлять, но при хорошей организации особой разницы нет, автоматически быстрее получается. -------------------- ...все в мире относительно |
|||
|
||||
| Diesel Draft |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 876 Регистрация: 18.1.2005 Где: Lviv, Ukraine Репутация: нет Всего: 5 |
А как обстроена ваша ЦМС?
|
|||
|
||||
| Nicholas_S |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 486 Регистрация: 12.10.2006 Где: Санкт-Петербург Репутация: нет Всего: 19 |
Diesel Draft, что есть "обстроена"? Если имеется ввиду архитектурное построение системы, то, увы, не могу рассказать об этом. По крайней мере в ближайшее время.
Есть конкретный вопрос - задавай. -------------------- ...все в мире относительно |
|||
|
||||
| Digo |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 194 Регистрация: 30.9.2004 Где: Ростов на Дону Репутация: нет Всего: нет |
Интересная тема сейчас сам думаю над этой проблемой... пока только не пойму как безопасно передавать файлы с сервера обновлений на конкретный обновляющийся сервер... по ftp тогда надо знать пароли сервера. У юмлы мне нравилась система обновлений там скачивался архив в нем были файлы php, sql базы и xml файл с инструкциями если пересылать такой архив на сервер и там распаковывать и обновлять...
--------------------
640кб оперативной памяти хватит миру по самые уши (Билл Гейтс ) |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Для профи | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |