「Apache(https)」でGitを使う

リポジトリを置くサーバーにて、webdavを使い「https」経由でGitリポジトリを取得ができる。

1.レポジトリのパーミッションを、Apacheで読み書き可能にするリポジトリは、すでに作成済とする。

chown -R apache apache /var/git/プロジェクト名

2.DAVを有効にする 「/etc/httpd/conf/httpd.conf」がApache設定ファイルとする。 下記がなければ追加

  LoadModule dav_module modules/mod_dav.so
  LoadModule dav_fs_module modules/mod_dav_fs.so

3.「Git」リポジトリをVirtualHostに設定する

  <VirtualHost git.example.com:80>
    ServerAdmin  morimoto@example.com
    DocumentRoot /var/git ←リポジトリ群
    ServerName   git.example.com

    ErrorLog  logs/git.example.com/error_log
    CustomLog logs/git.example.com/access_log combined

    <Directory /var/git/プロジェクト名/>
      Options All
      AllowOverride All
    </Directory>
  </VirtualHost>

4.「httpsSSL)」経由でBASIC認証を用いてリポジトリを開放する

  <Location /プロジェクト名>
    DAV on #webDAVを有効化
    SSLRequireSSL #SSL経由設定
    AuthType Basic #BASIC認証を利用
    AuthName "Git" #BASIC認証ユーザー名
    AuthUserFile /var/git/passwd.git #BASIC認証パスワードファイル
    Require valid-user #複数ユーザーのID:PW組み合わせ可
  </Location>

5.BASIC認証パスワードファイル作成

  cd /var/git
  htpasswd -c passwd.git Git #「Git」はBASIC認証ユーザー名
  New password: #BASIC認証パスワード入力。入力後2回目の確認入力

6.Apacheの再起動

 /etc/rc.d/init.d/httpd restart

7.リポジトリ公開設定

  cd /var/git/プロジェクト名
  git --bare update-server-info

リポジトリサーバー側の設定完了

8.クライアントでclone(チェックアウト) ※今回は、windowsで「Cygwin」を利用

ソースを展開するディレクトリを作成し、cloneする

    mkdir /home/homepage/git_work
  GIT_SSL_NO_VERIFY=1 git clone https://BASIC認証ユーザー名:パスワード@サーバー名/プロジェクト名

「GIT_SSL_NO_VERIFY=1」は、オレオレSSL認証の場合に入力が必要な場合あり

※「TortoiseGit」などでも、cloneは可能。

参考 Git のリモートリポジトリから HTTP で pull するためのメモ http://d.hatena.ne.jp/aki-yam/20091203/1259809797 GitリポジトリWebDAV(+https)経由で公開する http://d.hatena.ne.jp/yamkazu-tech/20090504/1241452184 gitレポジトリをhttpで公開する http://www.fraction.jp/log/archives/2008/05/15/setup-git-server-over-http