ユーザ用ツール

サイト用ツール


ubuntu-server-14-04:git-server

Git サーバのインストール

バージョン管理ソフトの Git をインストールする。

主に以下の3通りの方法でインストールするのが主流らしい。

  1. Git をインストールして SSH 経由で接続する
  2. Git をインストールして git-http-backend に対して HTTP 経由で接続する
  3. WebDab 上にリポジトリを作成して HTTP 経由で接続する

WebDav は遅いらしい。接続する人が増えるたびに SSH の鍵作るのもいやなので、git-http-backend を使う方法に決定。

環境

インストール前の環境

  • Ubuntu 14.04.1 LTS 64bit
パッケージ名 バージョン
apache2 2.4.7-1ubuntu4.1

Apache2 はすでに稼働中。

インストールするパッケージ等

パッケージ名 バージョン
git-core 1:1.9.1-1

インストールと設定

パッケージをインストール

Git をインストールする。

$ sudo apt-get install git-core

モジュールを有効化

git-http-backend は Apache2 上で動作し、mod_cgi、mod_alias、mod_env モジュールが必要。デフォルトでは、mod_cgi が無効になっている。

$ sudo a2enmod cgi alias env

Apache2 のサイトの設定を変更する。以前作成した、SSL を使用するサイトの <VirtualHost> ディレクティブ内に以下を記述する。認証に使用するパスワードは、WebDav をインストールした際に作成したものを利用する。

  • /var/www/git: Git リポジトリを格納するディレクトリ。複数のリポジトリを格納する予定。
SetEnv GIT_PROJECT_ROOT /var/www/git
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>
        SSLRequireSSL
        SSLOptions +StrictRequire
        AuthType Basic
        AuthName "Git Authentication"
        AuthUserFile /etc/apache2/dav.passwd
        Require valid-user
</Location>

設定ファイルの構文チェックを行う。

$ sudo apache2ctl configtest

Apache2 を再起動する。

$ sudo service apache2 restart

テスト用のリポジトリを作成

テスト用にリポジトリを作成する。

$ sudo mkdir /var/www/git
$ cd /var/www/git/
$ sudo mkdir ./test.git
$ cd ./test.git/
$ sudo git init --bare
$ sudo git config http.receivepack true
$ sudo git update-server-info
$ sudo touch ./git-daemon-export-ok
$ sudo cp ./hooks/post-update.sample ./hooks/post-update
$ sudo chown -R www-data:www-data .

クライアントからアクセスし、Git にアクセスできるかを確認する。

参考

ubuntu-server-14-04/git-server.txt · 最終更新: 2015/01/07 22:50 by admin