git-ftpで、ftpしか出来ないサーバでも自動デプロイ

レンタルサーバ等の、ftpしかできないサーバを扱う案件でもやはりバージョン管理はしたいし、できればcommitで自動デプロイもしたい。そこで、見つけたgit-ftpを使ってみました。

利用想定環境

以下のようなシーンに有効かと思います。

  • ftpしか使えないサーバ

  • 検証環境=本番環境(要はサーバ 一つだけ)

  • ローカルリポジトリでしか管理していない

主に、レンタルサーバでのサイト開発を一人でするような場合にこれに当てはまるのではないでしょうか。

インストールと使い方

ほぼこの記事通りなのです。まずはインストールして

$ brew install git-ftp

ローカルのリポジトリに移動してinit

$ git ftp init -u (user) -p – ftp://host.example.com/public_html

で、完了です。

ですが、このままだと毎回

  • git commit

  • git ftp push (…以下略)

と、commitの度にgit ftp pushを繰り返す流れになるので、せっかくなので、commitしたら自動でデプロイするようにします。

hooks

commmit後に走らせる処理は、.git/hooks/post-commitというファイルに処理を書きます。ここに

exec git ftp push --user (user) --passwd (password) (host)

という形でgit-ftpの同期コマンドを設定してます。これでok

あとは、git commitすれば、自動的にftpも走って同期されます。これで通常手動でftp行なっている場合、アップロード漏れの心配が無くなります。