2008-11-29 9 views
19

Comment est-ce que je pourrais y arriver?Utiliser Capistrano pour déployer (un site non-Rails) via FTP?

J'ai un site principalement statique, qui est hébergé sur un hébergeur bon marché, qui ne permet qu'un accès FTP à l'hébergement. Le site est suivi en git. J'utilise OS X.

Je voudrais télécharger une nouvelle version du site en faisant simplement cap deploy

Répondre

16

Nous utilisons Capistrano pour déployer notre site qui est écrit en PHP. De mémoire (je ne suis pas au travail en ce moment) nous surcharger déployer et utilisé rsync pour synchroniser sur sftp. Quelque chose comme ceci:

desc "Sync" 
namespace :deploy do 

    desc "Sync remote by default" 
    task :default do 
    remote.default 
    end 

    namespace :remote do 

     desc "Sync to remote server" 
     task :default do 
      `rsync -avz "/path/to/webapp" "#{remote_host}:#{remote_root}/path/to/webapp"` 
     end 
    end 
end 

Je suis sûr que vous pouvez remplacer rsync avec tout un programme ftp et il devrait fonctionner correctement.

+5

mont ftp avec curlftpfs, rsync comme système de fichiers local, démonte: 'curlftpfs ftp: // # {login}: # {password} @ # {} remote_host/chemin/mnt/mount_point && rsync -ruv - delete/project_path/mnt/mount_point && fusermount -u/mnt/mount_point' – r92

2

Je n'ai pas essayé avec Capistrano, mais dans mes propres scripts shell, je l'ai toujours utilisé weex

(http://weex.sourceforge.net/)

pour déployer des sites via FTP. Imaginez que vous pourriez le pirater avec capistrano aussi.

Il conserve un cache local de l'état du serveur FTP afin qu'il ne puisse télécharger que les fichiers modifiés. C'est bien, accélère massivement les choses ... mais (évidemment?), Ça va mal tourner si votre code/autre chose est changé par d'autres moyens. Donc, il peut être fait de ne pas le faire si nécessaire.

Questions connexes