サーバーにGitを設定し、gitosisを使用してコミットアクセスを制御しました。ファイアウォールの内側にいる誰もがGitリポジトリへの読み取りアクセスを持つことができるようにGitシステムを構成したいと思います。また、Gitwebもセットアップしたいと思います。
さまざまなブログでいくつかのGitwebセットアップチュートリアルを見つけましたが、それらはさまざまな詳細が異なり、一部は古くなっています。この質問に最新の回答をお願いします。
私の特定のセットアップはRed Hat Enterprise Linuxです。 Git、gitosis、およびGitwebとApacheのパッケージを正常にインストールしました。ただし、実際にGitwebへのアクセスを許可するようにApacheを構成する方法はわかりません。
Gitへの読み取り専用アクセスを許可し、Gitwebが機能するようにサーバーを設定するにはどうすればよいですか?
Gitweb(RHEL $ yum install gitweb
上)をインストールすると、var/www/git
ディレクトリが作成され、etc/httpd/conf.d/git.conf
にファイルが配置されます。これらが存在しない場合は、作成してください。すべてのgitリポジトリをvar/www/git
に配置し、git.conf
を編集してcgiスクリプトを実行し、gitwebのURLを書き換えます。ここに私が持っているものがあります:
<Directory /var/www/git>
SetEnv GITWEB_CONFIG /etc/gitweb.conf
DirectoryIndex gitweb.cgi
Allow from all
AllowOverride all
Order allow,deny
Options +ExecCGI
AddHandler cgi-script .cgi
<Files gitweb.cgi>
SetHandler cgi-script
</Files>
RewriteEngine on
RewriteRule ^[a-zA-Z0-9_-]+.git/?(\?.)?$ /gitweb.cgi%{REQUESTURI} [L,PT]
</Directory>
/etc/gitweb.conf
には、css、ファビコン、ロゴなどを指すgitweb.confファイルもあります。プロジェクトを/ var/www/gitに残しておけばこれらはうまくいくと確信していますが、そのディレクトリを変更した場合は、おそらくgitweb.confに置く必要があります。
Ubuntu 8.04でテスト済み:
Sudo apt-get install Apache2 git-core gitweb
Sudo a2enmod rewrite
Gitプロジェクトが/pub/git
にあると想定して、ファイルを編集します:/etc/gitweb.conf
$projectroot = "/pub/git";
$git_temp = "/tmp";
#$home_link = $my_uri || "/";
$home_text = "indextext.html";
$projects_list = $projectroot;
$stylesheet = "/gitweb.css";
$logo = "/git-logo.png";
$favicon = "/git-favicon.png";
# enable human readable URLs
$feature{'pathinfo'}{'default'} = [1];
次に、Apache configディレクトリに新しい仮想ホストをセットアップします。 /etc/Apache2/sites-available/gitweb
という新しいファイルを編集します
<VirtualHost *>
ServerName git.mydomain.com
ServerAlias git
DocumentRoot /pub/git
SetEnv GITWEB_CONFIG /etc/gitweb.conf
RewriteEngine on
RewriteRule ^/$ /gitweb [PT]
RewriteRule ^/(.*\.git/(?!/?(HEAD|info|objects|refs)).*)?$ /gitweb%{REQUEST_URI} [L,PT]
# Aliases
ScriptAlias /gitweb /usr/lib/cgi-bin/gitweb.cgi
Alias /gitweb.css /usr/share/gitweb/gitweb.css
Alias /git-logo.png /usr/share/gitweb/git-logo.png
Alias /git-favicon.png /usr/share/gitweb/git-favicon.png
# Logfiles
ErrorLog /var/log/Apache2/gitweb.error.log
CustomLog /var/log/Apache2/gitweb.access.log combined
</VirtualHost>
新しいサイトを有効にします。
Sudo a2ensite gitweb
Apacheを再起動します。
Sudo invoke-rc.d Apache2 restart