GitでのHTTP通信覚え書き読み取り編
HTTP経由でのGitの通信を設定する上で色々とはまったので、覚え書き。
今回は読み取り編。読み取りに関してはほとんどはまりがなかったけれど、備忘録的につけておく。
目標
HTTP経由で、既存のGitプロジェクトをcloneできるようにする。
例)HTTPサーバ=Apache、起動ユーザ=daemonの場合、リポジトリのパスは適時自分のものを設定
- Gitリポジトリの設定
$ 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プロトコルよりも遅い。