Я создал CMS (используя PHP-среду Codeigniter), которую мы используем для всех наших клиентов. Я постоянно подправляю его, и становится трудно отслеживать, какие клиенты имеют какую версию. Мы действительно хотим, чтобы у всех всегда была последняя версия.
Я написал это таким образом, чтобы обновления и обновления обычно включали только загрузку новой версии через FTP и удаление старой - я просто не касаюсь каталогов /uploads
или /themes
(все определенное на сайт есть либо там, либо в базе данных). Все является модулем, и у каждого модуля есть свой номер версии (а также ядро CMS), а также сценарий установки и удаления для каждой версии, но сначала я должен вручную загрузить файлы по FTP, а затем запустить скрипт установки модуля. с панели управления. Я написал и буду продолжать писать все лично, поэтому у меня есть полный контроль над кодом.
Что мне хотелось бы, так это уметь обновлять ядро CMS и отдельные модули с панели управления самой CMS. Это «CMS для чайников», поэтому вопрос о том, чтобы попросить людей FTP или сделать что-то удаленное, не обсуждается. Я представляю что-то вроде сообщения, появляющегося при входе в систему, или в списке установленных модулей, например «Доступна новая версия».
Я уверен, что смогу разобраться с большинством технических деталей, как только у меня получится, но я не уверен, какое направление выбрать. Я могу придумать, как попытаться сделать это с помощью cURL (для аутентификации и извлечения исходных файлов из какого-либо места на нашем сервере) и функций собственной файловой системы PHP, таких как unlink()
, file_put_contents()
и т. Д., Для предварительной обработки фактических обновлений файлов или заполнения " старый «CMS» в каталоге резервного копирования и настройте новый, но даже когда я пишу этот пост - это звучит как рецепт катастрофы.
Я не использую git / github или что-то еще, но у меня такое чувство, что что-то подобное может помочь? Как я должен (или не должен) подходить к этому?