Автоматическое обновление всего движка сайта, всех php файлов.

dr_DOT

Guest
Автоматическое обновление всего движка сайта, всех php файлов.

Приветствую.

Основной вопрос:: Какой способ выбрать для копирование с перезаписыванием файлов php всего движка сайта, учитывая то, что chmod 600, но apache запускается из под владельца. И как лучше всего реализовать это средствами ПШП.

Поставленная задача: Реализовать автоматически через крон и ручном режиме обновление движка и всех установленных модулей на всех сайтах - проектах, причем набор этих модулей везде разный, соответственно кол-во заменяемых файлов тоже разное.

Мой алгоритм: Соединяемся с сервером обновлений через HTTP, отдаем ему информацию о лицензии и список всех файлов с датами изменений, (некий cvcup только на PHP), сервер проверяет лицензию и отдает запакованный пакет со всеми необходимыми измененными файлами и инструкциями. Этот файл перекачивается в специальную папку, распаковывается. Далее должна идти обработка инструкций по обновлению, но подменить все файлы не получается т.к. нет доступа из php скрипта. Вариантов решения видится 2, запуск через exec /bin/sh <файл инструкций> или соединится со своим же ftp сервером и перекачать все новые файлы поверх.

Может кто подскажет еще какой способ, более оптимальный, спасибо за помощь.
 

Tor

Новичок
а почему ты не можешь переписать файлы скриптом?
права 600, владелец должен быть тот же, что и скрипт запускает
 

dr_DOT

Guest
забыл сказать, что не на всех серверах apache обладает правами владельца скриптов, а нужна универсальная система.
 

Tor

Новичок
dr_DOT
видно ты чего-то не понимаешь

ты создай скриптом файл
можешь ты его потом другим скриптом перезаписать?
да, можешь (если исключить совсем редкие ограничения)

и ни при чем, что каждый потомок апача запускается под своим юзером
 

dr_DOT

Guest
возможно, я что то и не понимаю..

дело в том, все файлы были созданы не скриптом, а путем закачки этих файлов на ftp (руками), никто специально не выставлял для них никаких прав, а уж тем более прав на перезапись. Перезапись на PHP не всегда работает, например на некоторых серверах php в safe_mode а файлы ведь не в одной папке лежат.... как мне, кажется, лучшее решение соединятся со своим же ftp и перезолить поверх...

Или есть более простые решения?
 

Кром

Новичок
>все файлы были созданы не скриптом, а путем закачки этих файлов на ftp

В идале тебе нужно чтобы apache изначально создавал все папки и копировал туда все файлы, выставляя для них соответстующие права. Тогда через него можно делать и все остальные обновление.
В этом есть один нехороший момент. Apache тогда может перезаписать любой файл в структуре сайта.

Другой вариант, написать скрипт, который владелец сайта будет вызывать со своими правами и через него обновлять структуру сайта.
 

Tor

Новичок
во-первых, что мешает в первый раз, после заливки по фтп, выставить правильные права и владельцев?
и тогда никакой safe_mode не запретит тебе их переписывать

а во-вторых, угадай, какие права и владелец будет, если ты скриптом заберешь откуда-то по фтп файлы?
 

dr_DOT

Guest
Tor
на первое: клиенты (покупатели) сами устанавливают движок и скрипты я не лезу к ним на фтп и не смотрю что да как.
на второе: вы несомненно правы. только обновления я заберу с http сервера обновлений. Смысл в том как эти обновления установить :)

Кром
по поводу защиты вы действительно правы, не хорошо будет если из скрипта можно будет переписать все файлы.

похоже правильнее будет загружать через loopback ftp, единственное что смущает клиенту придется вписывать логин и пароль к своему фтп, а это тоже как то не правильно...
 

Tor

Новичок
клиенты (покупатели) сами устанавливают движок и скрипты
мне кажется, что условие "выставить такие-то права и такого-то владельца для таких-то (или всех) файлов" будет очень органично смотреться в мануале по установке
или шеловский скрипт пусть этим займется
 
Сверху