2009-12-22 1 views
0

Я пытался создать автоматическую систему обновления для cms, которую я создаю, которая потенциально будет установлена ​​на многочисленных серверах (вероятно, с разными конфигурациями). То, что я придумал, - сохранить текущую версию, загруженную на мой сервер в предопределенном каталоге. Затем распределенные системы проверяют этот каталог (на удаленном сервере) один раз так часто, чтобы узнать, была ли загружена новая версия. Если номер версии загруженной версии больше, чем номер той, которая имеет конкретную систему, она предложит обновить администратора. Затем файлы будут скопированы через FTP в каталог tmp, а затем будут скопированы из tmp для замены более старых версий каждого файла. то каталог tmp будет удален, а номер версии системы увеличен.PHP-метод для передачи всего каталога с использованием FTP?

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

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

Благодарим за помощь!

ответ

0

Вместо отправки каталога, почему бы не застегнуть папку для экономии пропускной способности и времени? Затем разархивируйте на целевых серверах.удален, так как он был не вариант для OP

Вы можете использовать PHAR архивы для развертывания приложений (если вы хотите быть истекающего кровью края современный)

Или вы могли бы написать сценарий обновления для Phing который получает файлы с вашего сервера. Вы даже можете делать проверки из SVN, вместо того, чтобы размещать сборку в каталоге.

+0

правильно, я не хочу, чтобы беспокоиться ни о чем могут быть установлены на этих серверах. Я потенциально не буду иметь никакого контроля или действительно знать, где эта система установлена. Я буду смотреть в PHAR, только потому, что я никогда не слышал об этом раньше, выглядит интересно. Но это будет зависеть от того, какую поддержку он нуждается на сервере. – seventeen

0

Попробуйте использовать Exec() для запуска LFTP из командной строки:

/usr/bin/lftp -e 'o ftp://ftp.example.com/path/to/remote/directory && mirror --verbose && quit'

Смежные вопросы