PHP метод для передачи всего каталога с использованием FTP? - PullRequest
0 голосов
/ 22 декабря 2009

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

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

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

Спасибо за вашу помощь!

Ответы [ 2 ]

0 голосов
/ 22 декабря 2009

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

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

0 голосов
/ 22 декабря 2009

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

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

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

...