qshinoの日記

Powershell関係と徒然なこと

git http

下記から

http://tech.farend.jp/blog/2015/04/07/git-http-server/

 

AuthUserFileが気になる

 

ApacheでgitリポジトリをHTTPで公開するための設定
2015/04/07 10:29 PM
gitリポジトリをHTTP経由でcloneやpushできるよう設定する手順です。Ubuntu 14.04上でApacheを使って次のような環境を作ることをを想定しています。

リポジトリの名前は project.git
サーバ上のリポジトリのパスは /var/lib/git/project.git
リポジトリのURLは http://HOSTNAME/git/project.git
Basic認証を行う
認証用パスワードファイルは /etc/apache2/htpasswd
ソフトウェアのインストール

Apacheのインストール

Basic認証用パスワードファイルの生成に使う htpasswd を使用するために apache2-utils パッケージのインストールと、 git-http-backend を動作させるために必要な mod_cgi の有効化も行います。


sudo apt-get install apache2
sudo apt-get install apache2-utils
sudo a2enmod cgi
gitのインストール


sudo apt-get install git
公開用リポジトリの作成


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
認証用パスワードファイルの作成


sudo htpasswd -c /etc/apache2/htpasswd maeda
Apacheの設定

以下の設定を /etc/apache2/httpd.conf に追記するなどします。


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再起動


sudo service apache2 restart
cloneできることを確認


cd ~
git clone http://localhost/git/project.git