Windows + ApacheでGitサーバっぽいものを作ってみた
1ヶ月くらい書くネタがなくて放置してたブログですね!
SSH以外の認証方法でGitリポジトリを公開したいなと思って昨日の夜から作業してた内容を書いておこうという感じです。
いろいろあってSSH以外を使わなくちゃいけなかったのでWebDAVとやらでがんばってみました。
重要なお断り
記憶を頼りに書いたので間違ってたらごめんなさい
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でのやり方教えてください!スマートサーバとかわけわかめすぎて死にました。。
認証無しですができました!