web-dev-qa-db-ja.com

Gitwebの設定方法

サーバーにGitを設定し、gitosisを使用してコミットアクセスを制御しました。ファイアウォールの内側にいる誰もがGitリポジトリへの読み取りアクセスを持つことができるようにGitシステムを構成したいと思います。また、Gitwebもセットアップしたいと思います。

さまざまなブログでいくつかのGitwebセットアップチュートリアルを見つけましたが、それらはさまざまな詳細が異なり、一部は古くなっています。この質問に最新の回答をお願いします。

私の特定のセットアップはRed Hat Enterprise Linuxです。 Git、gitosis、およびGitwebとApacheのパッケージを正常にインストールしました。ただし、実際にGitwebへのアクセスを許可するようにApacheを構成する方法はわかりません。

Gitへの読み取り専用アクセスを許可し、Gitwebが機能するようにサーバーを設定するにはどうすればよいですか?

6
steveha

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に置く必要があります。

8
al.

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
6
cmcginty