アジョブジ星通信

進捗が出た頃に更新されるブログ。

Windows + ApacheでGitサーバっぽいものを作ってみた

1ヶ月くらい書くネタがなくて放置してたブログですね!

SSH以外の認証方法でGitリポジトリを公開したいなと思って昨日の夜から作業してた内容を書いておこうという感じです。
いろいろあってSSH以外を使わなくちゃいけなかったのでWebDAVとやらでがんばってみました。

重要なお断り

記憶を頼りに書いたので間違ってたらごめんなさい

サーバ環境

というかこれメインPCだからサーバもなにもないんだけどとりあえず環境説明

Apacheの設定をイジイジしてWebDAVを使えるようにする

イマイチWebDAVっていうのがどんなものなのかわかってないんですができたのでいいとします。
Apacheのインストール場所\conf\httpd.conf を開いて

#LoadModule dav_module modules/mod_dav.so
#LoadModule dav_fs_module modules/mod_dav_fs.so
#LoadModule dav_lock_module modules/mod_dav_lock.so

となっている行の「#」を取り払います。

そして以下の設定をhttpd.confの最後の行らへん(どこでもいい)に追加します。

DavLockDB logs/DavLock
Alias /git C:\www\AzyobuziNetAtHome\git
<IfModule mod_dav.c>
    <Location /git>
        DAV on
        AuthType Basic
        AuthName "Git"
        AuthUserFile C:\www\AzyobuziNetAtHome\git\.htpasswd
        Require valid-user
    </Location>
</IfModule>

/gitとかC:\www\AzyobuziNetAtHome\gitとかは使う環境に合わせて変えてあげてください。
完了したら上書き保存で設定終わり。

.htpasswdを設定

先ほどの設定の「AuthUserFile」の項目で設定したパスに.htpasswdを設定します。

〜Apache2.2\bin> htpasswd -c C:\www\AzyobuziNetAtHome\git\.htpasswd username
New password:****
Re-type new password:****

便利なツールがついてて嬉しいですね。

ここでApacheをrestartしておきます。

リポジトリを作成

準備完了(のはず)なのでリポジトリを作っちゃいます。

cd C:\www\AzyobuziNetAtHome\git
md testrepo.git
cd testrepo.git
git --bare init --shared=true
git --bare update-server-info

完了!

pushしてみよう!

サーバ側から空のリポジトリをcloneしてからpushするとうまくいかなかった(運が悪いだけ?)のでクライアント側でリポジトリを作ってpushします。

git init
〜 ファイル追加など 〜
git commit -m "test commit"
git remote add origin http://username@localhost/git/testrepo.git
git push --all
  password:****

これでpushできた!!

というわけでやろうと思えばWindowsでもそれなりにできるみたいです。

最後に

Bazaarでのやり方教えてください!スマートサーバとかわけわかめすぎて死にました。。
認証無しですができました!