Prev / Next / XINUJP - ChangeWebLog

Web 自動更新[server][unix][移設記事(pico)]

2015-02-07

と言うわけで、xinu.jp を git 管理として、どこかの clone で書き込み git push でweb に反映するように設定。


○ git user で clone 作成

webサーバで、公開 DocRoot を clone で作成

- gitolite 管理実行ユーザ: git

sudo su git
cd /WEBSITE/MYSITE/
git clone /some/where/gitolite/repositories/MYWEBSITE.git ./DocRoot



○ post-receive hook

webサーバ( = gitolite サーバ)で git push 受信時に、DocRoot(clone) で git pull を自動実行させる。

/some/where/gitolite/repositories/MYWEBSITE.git/hooks 内に次を設置。

- post-receive

#!/bin/sh
cd /WEBSITE/MYSITE/DocRoot/
git --git-dir=.git pull


参考: http://qiita.com/fnobi/items/98bd5d1c83c010842733

○ トラブル

自動化はできたが、自動 git pull したファイルのパーミッションが 0600 となってしまう問題発生。
(0600 だと apache owner が読めない。)

ここ によると gitolite では umask 0077 が設定されるらしいので、post-update に umask 0022 設定した。

しかし、状況は変わらずに 0600 のまま。

で、.gitolite.rc に 0077 が設定してあったので、そこを修正。

diff -U 3 .gitolite.rc.org .gitolite.rc

--- .gitolite.rc.org 2014-01-11 19:04:50.000000000 +0900
+++ .gitolite.rc 2015-02-07 17:44:29.000000000 +0900
@@ -29,7 +29,7 @@
$PROJECTS_LIST = $ENV{HOME} . "/projects.list";
# $WEB_INTERFACE = "gitweb";
# $GITWEB_URI_ESCAPE = 0;
-$REPO_UMASK = 0077;
+$REPO_UMASK = 0022;

# ------------------------------------------------------------------------------
# variables with an efficiency/performance impact


で問題解決したので、この blog を作成している次第。

permlink