2008-11-29 3 views
19

Как я могу это сделать?Использование Capistrano для развертывания (сайт без Rails) через FTP?

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

Я хотел бы, чтобы загрузить новую версию сайта просто делать cap deploy

ответ

16

Мы используем Capistrano развернуть наш сайт, который написан на PHP.

Из памяти (я сейчас не работаю) мы перегружаем развертывание и используем rsync для синхронизации по sftp. Что-то вроде этого:

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 

Я уверен, что вы могли бы заменить Rsync с любой программой FTP и он должен работать нормально.

+5

Маунт FTP с curlftpfs, Rsync как локальной файловой системы, размонтировать: `curlftpfs FTP: // # {} Логин: # {пароль} @ # {remote_host}/путь/мнт/mount_point && Rsync -ruv - delete/project_path/mnt/mount_point && fusermount -u/mnt/mount_point` – r92 2011-05-10 09:09:26

2

Я не пробовал с Capistrano, но в моих собственных сценариях оболочки, я всегда использовал weex

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

для развертывания площадок по FTP. Представьте, вы могли бы взломать его тоже с помощью capistrano.

Он хранит локальный кэш состояния FTP-сервера, чтобы он мог загружать только измененные файлы. Это хорошо, значительно ускоряет работу ... но (очевидно?), Это пойдет не так, если ваш код/​​другой материал изменится с помощью других средств. Таким образом, это может быть сделано, чтобы не делать этого, если нужно.

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