FTP kullanarak bütün dizini aktarmak için PHP yöntemi?

2 Cevap php

Potansiyel (farklı konfigürasyonları ile olası) sayısız sunucuları üzerinde yüklü olacak ben o inşa ediyorum bir cms için otomatik güncelleme sistemi inşa etmek için bir yol ile gelip çalışıyorum. Ne ile geldim, önceden belirlenmiş bir dizinde benim sunucusuna yüklenen bir güncel sürümünü tutmaktır. Sonra dağıtık sistemler, yeni bir sürümü yüklendikten sonra eğer bir kez her öylesine sık sık görmek için (bir uzak sunucuda) bu dizini kontrol var. Yüklenen sürümü sürüm numarası belirli bir sistem olan biri daha büyükse, güncellemek için yönetici isteyecektir. Sonra dosyaları tmp dizine FTP üzerinden kopyalanır, sonra her dosyanın eski sürümleri yerine tmp kopyalanmış olacaktır. sonra tmp dizini silinir ve sistem sürüm numarası artar.

Bu sorun, ben PHP FTP üzerinden tüm dizinleri aktarmak için bir yol bulmuş değil olmasıdır. Ben bunu zip ve bu şekilde aktarabilirsiniz biliyorum, ama ben çeşitli sunucu ortamlarında dosyaları halletmek için güvenilir bir yol bulamadı.

Ben sadece her dizinin geçmesi ve ince bir zamanda, her dosyanın bir devredemez olacak benim kendi yöntemi yazabilirim biliyorum. Ben sadece başkası zaten bu yönde bir şeyler yazmıştı olmadığını bilmek istedim, ya da ben içine dalış önce kimse bu soruna alternatif bir çözüm bilselerdi.

Yardımlarınız için teşekkürler!

2 Cevap

Instead of sending a directory, why not zip the folder to save bandwidth and time? Then unzip on the destination servers. deleted since it was not an option for the OP

(Eğer modern kenar kanama olmak istiyorsanız) app dağıtım için PHAR arşivleri kullanabilirsiniz

Ya da sunucudan dosya alır Phing için bir güncelleştirme komut dosyası yazabilirsiniz. Hatta yerine dizinde inşa yerleştirerek, daha sonra SVN checkouts yapabilirdi.

Komut satırından lftp çalıştırmak için () exec kullanmayı deneyin:

/usr/bin/lftp -e 'o ftp://ftp.example.com/path/to/remote/directory && ayna - && ayrıntılı 'çıkmak