massの日記

日々の薪

GitでのHTTP通信覚え書き読み取り編

HTTP経由でのGitの通信を設定する上で色々とはまったので、覚え書き。
今回は読み取り編。読み取りに関してはほとんどはまりがなかったけれど、備忘録的につけておく。

目標
HTTP経由で、既存のGitプロジェクトをcloneできるようにする。

例)HTTPサーバ=Apache、起動ユーザ=daemonの場合、リポジトリのパスは適時自分のものを設定

$ cd /your/gitrepos/project.git
$ mv hooks/post-update.sample hooks/post-update
$ chmod a+x hooks/post-update
  • 権限設定(ここではグループユーザを設定しているが、グループユーザに読み取りと実行権限があることが前提)
$ cd /your/gitrepos/project.git
$ chown :daemon 
  • ドキュメントルートの設定

    ServerName git.gitserver
    DocumentRoot /your/gitrepos/
    
        Order allow, deny
        allow from all
    

Apacheの再起動。
クライアント側からgit clone http://git.gitserver/your/gitrepos/project.gitでcloneができれば成功。
ただし、これはフルオープンなので、アクセス制限をかけたいなら適時かける。
また、HTTPプロトコルを通しているので、cloneにかかる時間がGitプロトコルよりも遅い。