WebDAVでアクセスできるGitリポジトリの作成手順
WebDAVでpushできるGitリポジトリを作ったのでメモ。
以下は、
場合の作業手順です。
環境
使用した環境は次の通り。
概要
1.apacheにWebDAVの設定をする。
公開サーバーで、apacheの公開ディレクトリ「/git」を作成し、WebDAVでアクセスできるようにします。
1.1.公開ディレクトリの作成
「/var/www/html」がDocumentRootだったので、「/var/www/html/git」を作成し所有者をapacheの実行ユーザーにします。
$ cd /var/www/html/ $ mkdir git $ chown apache:apache git/
1.2.WebDAVの設定
「/etc/httpd/conf.d/git.conf」を新規作成し、以下の設定を書きます。
-
- Basic認証付き。ユーザーとパスワードの一覧となるAuthUserFileの作り方については、@IT - ユーザー認証によるアクセス制限あたりを参照。
<Location /git> DAV on #Basic認証の設定 AuthType Basic AuthName "git repository" AuthUserFile <パスワードファイル> Require valid-user </Location>
1.3.apacheを再起動します。
$ /etc/init.d/httpd restart httpd を停止中: [ OK ] httpd を起動中: [ OK ]
再起動すると、ブラウザから「http://foo.com/git」にアクセスできるようになっているはず。
2.リポジトリ「hoge」の裸(bare)のクローンを作る。
ローカルで、リポジトリ「hoge」の裸(bare)のクローンを作成します。また、公開のための設定をします。
$ cd <リポジトリ「hoge」のあるディレクトリ> $ git clone --bare ./hoge/ hoge.git Initialized empty Git repository in /xxx/hoge.git/ $ touch ./hoge.git/git-daemon-export-ok
3.作成したクローンをサーバーに送付
作成したクローンをサーバーに送ります。転送手段はなんでも良さそうですが、とりあえずscpで。
$ scp -r ./hoge.git <ユーザー>@foo.com:/var/www/html/git
4.クローンを公開リポジトリに配置し、公開設定をする。
サーバーに移動し、クローンを公開リポジトリに配置して公開設定をします。また、apacheから更新ができるように、リポジトリの所有者をapacheの実行ユーザーにしておきます。
$ cd /var/www/html/git/hoge.git $ git --bare update-server-info $ chmod a+x hooks/post-update $ chown -R apache:apache .
これでリポジトリ「http://foo.com/git/hoge.git」が公開されたはず。
5.クライアントからcloneしてみる。
ちゃんと設定できているか、クライアントから接続して確認してみます。
5.1.認証情報の設定
「~/.netrc」というファイルを作成し、認証情報を設定します。
-
- 改行コードは「LF」とすること。
machine foo.com login <ユーザー名> password <パスワード>
5.3.pushの確認
クローンができたら、ファイルを追加してpushしてみます。
$ cd ./hoge $ vi README $ git add . $ git commit -m "test" $ git push http://foo.com/git/hoge.git master
無事pushができればOK。
参考