2009-12-22 72 views
0

我一直在想出一種方法來構建一個自動更新系統,我正在構建一個可能會安裝在衆多服務器上的cms(可能使用不同的配置)。我想到的是保持當前版本上傳到我的服務器在一個預定的目錄。然後讓分佈式系統每隔一段時間檢查一次該目錄(在遠程服務器上)以查看是否上傳了新版本。如果上傳版本的版本號大於特定系統的版本號,則會提示管理員進行更新。然後這些文件將通過FTP複製到一個tmp目錄中,然後將從tmp複製以替換每個文件的舊版本。那麼tmp目錄將被刪除,系統版本號會增加。使用FTP傳輸整個目錄的PHP方法?

這個問題,是我沒有找到一種方法來通過PHP FTP傳輸整個目錄。我知道我可以壓縮並以這種方式傳輸,但我還沒有找到一種可靠的方法來在各種服務器環境中解壓縮文件。

我知道我可以編寫自己的方法,只需要遍歷每個目錄並一次一個地傳輸每個文件,這很好。我只想知道其他人是否已經爲此寫了一些東西,或者如果有人在深入研究之前就知道這個問題的替代解決方案。

感謝您的幫助!

回答

0

代替發送目錄,爲什麼不壓縮文件夾以節省帶寬和時間?然後在目標服務器上解壓縮。刪除,因爲它不是爲OP選項

你可以使用PHAR檔案爲您的應用程序的部署(如果你想成爲出血邊緣現代)

或者你可以寫一個更新腳本Phing從您的服務器獲取文件。你甚至可以從SVN檢出結果,而不是將該版本放入目錄。

+0

吧,我不想擔心被安裝在這些服務器上的任何東西。我可能不會有任何控制權或真正瞭解系統安裝位置。我會研究PHAR,因爲我從來沒有聽說過它,看起來很有趣。但這取決於它在服務器上需要什麼樣的支持。 – seventeen 2009-12-22 17:15:44

0

嘗試使用EXEC()從從命令行運行的lftp:

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