ubuntu-server-14-04:git-server
Git サーバのインストール
バージョン管理ソフトの Git をインストールする。
主に以下の3通りの方法でインストールするのが主流らしい。
- Git をインストールして SSH 経由で接続する
- Git をインストールして git-http-backend に対して HTTP 経由で接続する
- 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