INNOBASE技術ブログ

技術的なことエンジニア的なこと制作的なこと全般

FTPでアップロードしているレンタルサーバ上のWEBページをgit管理する方法

FTPアップロードで気軽にWEBページを公開できるレンタルサーバー
最近は安価で自由なVPSが幅を利かせていますが、
安定稼働性やメンテナンスコストの低さから
会社のHPなど静的なコンテンツの多いWEBページではまだまだ
利用する機会が多いのではないでしょうか?
INNOBASEでも会社HPにレンタルサーバーを利用しています。

 

しかしこのレンタルサーバー
FTPしかインターフェースが用意されていないことが多く
複数人で作業していると、巻き戻りが起こってしまったり何かと不便です。
そこでgitとlftpを用いてレンタルサーバー上のWEBページをバージョン管理
するようにしてみたのでこの方法をご紹介します。

 

概要

作業、検収用のサーバーを別途用意、ここで編集・確認、git操作を行います。
lftp コマンドのmirrorで本番環境と検収サーバーのファイルを同期します。

検収サーバーにソース、本番環境のファイルをDLする

git のソースをclone

git clone git@XXXXXXXXXXXXXXXX 

 本番環境のファイルをDL

lftp -u ftpuser,ftppassword hostname -e "mirror home ./remote;exit;”

 ディレクトリをこんな感じにする

├── local
│   └── home (git clone したソースの document root 位置)

└── remote (本番からDLしたソースの document root 位置)

 

 ソースを編集、commit & push

その時必要な編集を local/home で行いgitに反映させる

本番との差異を確認

必要に応じて本番のファイルをサイドDLして remoteフォルダを最新にします。
その後差異を確認

 diff -r remote ./localho/home

 本番に展開(deploy)

lftp -u ftpuser,ftppass hostname -e "mirror -R local/home home ;exit;”

 lftp の mirror コマンドに -Rオプションをつけるとローカルからリモートへの転送になります。

 

これで、git管理できるようになりました。
push してからじゃないとアップロードしちゃいけないルールとか
この辺りのコマンドをbotに仕込んでチャットで操作するようにすれば
複数人での同時更新作業も怖くない!