gitリポジトリをHTTP経由でcloneやpushできるよう設定する手順です。Ubuntu 14.04上でApacheを使って次のような環境を作ることをを想定しています。
ソフトウェアのインストール
Apacheのインストール
Basic認証用パスワードファイルの生成に使う htpasswd
を使用するために apache2-utils パッケージのインストールと、 git-http-backend を動作させるために必要な mod_cgi の有効化も行います。
1
2
3
| sudo apt-get install apache2
sudo apt-get install apache2-utils
sudo a2enmod cgi
|
gitのインストール
1
| sudo apt-get install git
|
公開用リポジトリの作成
1
2
3
4
| sudo mkdir -p /var/lib/git/project.git
cd /var/lib/git/project.git
sudo git init --bare --shared
sudo chown -R www-data:www-data /var/lib/git
|
認証用パスワードファイルの作成
1
| sudo htpasswd -c /etc/apache2/htpasswd maeda
|
Apacheの設定
以下の設定を /etc/apache2/httpd.conf
に追記するなどします。
1
2
3
4
5
6
7
8
9
10
| ScriptAlias /git/ /usr/lib/git-core/git-http-backend/
SetEnv GIT_PROJECT_ROOT /opt/git
SetEnv GIT_HTTP_EXPORT_ALL
<LocationMatch "^/git">
AuthType Basic
AuthName "git repository"
Require valid-user
AuthUserFile /etc/apache2/htpasswd
</LocationMatch>
|
Apache再起動
1
| sudo service apache2 restart
|
cloneできることを確認
1
2
| cd ~
git clone http://localhost/git/project.git
|
関連情報