« 三次元迷路 - 3D Maze | トップページ | Arduinoで7セグメントLEDを使う »

2010年10月24日 (日)

gitを使ってWebアプリケーションを管理

最近はバージョン管理システムにgit(wikipedia)を使うことにしている。

今回やりたいこと

1.MacのSitesフォルダのcgi-bin内で開発するWebアプリをgitでバージョン管理
2.玄箱に公開用リポジトリを置く
3.公開用リポジトリにはhttpでアクセス可能にする
4.公開リポジトリとは別の場所でWebアプリを玄箱上で動かす


次のブログ記事を参考にした

フック(hook)を使ってコミットしたら自動的にデプロイするようにする

Git で集中リポジトリーに push したら、自動でワーク・ディレクトリーにも反映させる


以下やったこと

1.MacのSitesフォルダのcgi-bin内で開発するWebアプリをgitでバージョン管理
プロジェクトディレクトリ作成
$ cd ~/Sites/cgi-bin
$ mkdir myapp
$ cd myapp
$ vi myapp.py
gitの初期化、ファイル追加、コミット
$ git init
$ git add myapp.py
$ git commit -m 'first commit'

2.玄箱に公開用リポジトリを置く
sshで玄箱に接続
$ ssh
リポジトリ公開用のフォルダ作成
server $ cd /var/www
server $ mkdir git
myapp用のフォルダ作成(ベアリポジトリなので.gitを付けておく)
server $ cd git
server $ mkdir myapp.git
server $ cd myapp.git
git初期化
server $ git init --bare --shared
server $ exit
macに戻って、gitのリモートを追加しプッシュ
$ git remote add origin ssh://path/to/git/myapp.git
$ git push origin master

3.公開用リポジトリにはhttpでアクセス可能にする
gitのhookを利用する
httpアクセス用にファイル情報を更新してくれる
post-updateに実行権限を与える
server $ cd /var/www/git/myapp.git
server $ chmod a+x hooks/post-update

4.公開リポジトリとは別の場所でWebアプリを玄箱上で動かす
公開用リポジトリから動作させる場所にクローン
server $ cd ~/public_html/cgi-bin
server $ git clone /var/www/git/myapp.git
server $ cd /var/www/git/myapp.git
post-receiveを使って公開用リポジトリにプッシュされると自動でプルするようにする
server $ vi hooks/post-receive
次の行を追加する
(cd /home/user/public_html/cgi-bin && git --git-dir=.git pull)
server $ chmod a+x hooks/post-receive

gitがいろいろと自動でやってくれるから便利!

|

« 三次元迷路 - 3D Maze | トップページ | Arduinoで7セグメントLEDを使う »

git」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/1266500/37375879

この記事へのトラックバック一覧です: gitを使ってWebアプリケーションを管理:

« 三次元迷路 - 3D Maze | トップページ | Arduinoで7セグメントLEDを使う »