Git をインストール(SmartHTTP)

  • Web公開ディレクトリにリポジトリを作成
    • /var/www/git/ 以下にリポジトリ rep1 を作成。Apache2 で扱えるように所有者も変更。

      sudo mkdir -p /var/www/git/rep1
      sudo git --bare init
      sudo chown -r www-data.www-data /var/www/git

  • Apache2 のGit用設定ファイル追加
    • /etc/apache2/conf.d/git.conf を作成。SmartHTTP というのは git-http-backend を呼ぶものらしい。
      とりあえずHTTPでBASIC認証する設定で。
SetEnv GIT_PROJECT_ROOT /var/www/git/
SetEnv GIT_HTTP_EXPORT_ALL

AliasMatch ^/git/(.*/objects/[0-9a-f]{2}/[0-9a-f]{38})$          /var/www/git/$1
AliasMatch ^/git/(.*/objects/pack/pack-[0-9a-f]{40}.(pack|idx))$ /var/www/git/$1
ScriptAlias /git/ /usr/lib/git-core/git-http-backend/
 
<location /git>
  AuthType Basic
  AuthName "Git Repository"
  AuthUserFile /etc/apache2/passwd.git
  Require valid-user
</location>
  • パスワード設定
    • パスワードファイル新規作成時は -c 付き。

      sudo htpasswd -c /etc/apache2/passwd.git user1

  • Apache2再起動

    sudo /etc/init.d/apache2 restart

  • ブラウザで直接アクセスしても白い画面にしかならない。
    • TortoiseGit などのGitクライアントからclone(リポジトリ内容をローカルにコピーすること。SVNでいうcheckout)できれば成功。