4

実稼働サーバーに Git をインストールしたばかりで、GitWeb で動作することを望んでいます。私はそれを機能させることに非常に興味を持ちました.

git instaweb -d webrick --start

チュートリアルで説明されているとおりに機能します... http://lostechies.com/jasonmeridth/2009/09/27/git-instaweb/

ただし、他のフォーラムを読んだ後、instaweb は実際に使用することを意図していないようで、代わりに GitWeb を Apache で実行するように設定する必要があります。

私はApacheにかなり慣れていないので、何をすべきかについてあまり詳しくありません。http://unix-heaven.org/node/31のチュートリアルに従っています。でも全部はいらないと思います。私がする必要がある唯一のことは、httpd.confファイルに次を入れることだと思います...

<VirtualHost *:80>
    ServerAdmin <a href="mailto:admin@example.org">admin@example.org</a>
    ServerName git.example.org
    ServerAlias git-pub.example.org
    RedirectMatch ^/$ /gitweb.cgi
    SetEnv GITWEB_PROJECTROOT /cvs/codeRepository/git

    Alias /gitweb.js                /srv/www/gitweb/static/gitweb.js
    Alias /gitweb.css               /srv/www/gitweb/static/gitweb.css
    Alias /git-logo.png             /srv/www/gitweb/static/git-logo.png
    Alias /git-favicon.png           /srv/www/gitweb/static/git-favicon.png

    ScriptAlias / "/srv/www/gitweb/"

    <Directory "/srv/www/gitweb/">
        AllowOverride None
        Options Indexes FollowSymLinks ExecCGI
        Order allow,deny
        Allow from all
    </Directory>

    ErrorLog "/var/log/apache2/httpd-git-pub.example.org-access.log"
    CustomLog "/var/log/apache2/httpd-git-pub.example.org-error.log" common
</VirtualHost>

/srv/www/gitweb/ が含まれる場所....

$:/srv/www/gitweb # ls -ltr
total 252
-rwx------ 1 root root 247917 Feb 27 15:02 gitweb.cgi
drwx------ 2 root root   4096 Feb 27 15:03 static

上記で指定した構成は機能しますか、それとも指定する必要がありますか? もしそうなら、どの URL で GitWeb にアクセスしますか? serverName、serverAlias、serverAdmin は必要ですか?

ご協力いただきありがとうございます

4

1 に答える 1

2

使用するURLは次のとおりです

http://git.example.org

しかし、あなたの設定についてはよくわかりません。私のほうがシンプルで、http(s)://yourServer/ だけでなく、http(s)://yourServer/gitweb のようなアドレスを常にお勧めします。さらにサービスを追加する必要がある場合は、ルート URL を追加できます (のように/gitweb)。

認証なしで簡単に http アクセスするには、次のようにします。

# GitWeb on 80
Listen 80
<VirtualHost *:80>

  ServerName git.example.org
  ServerAlias git-pub.example.org

  SetEnv GITWEB_PROJECTROOT /cvs/codeRepository/git
  SetEnv GIT_HTTP_BACKEND "/usr/local/apps/git/libexec/git-core/git-http-backend"

  DocumentRoot /srv/www/gitweb
  Alias /gitweb /srv/www/gitweb

  <Directory /srv/www/gitweb>

    Options ExecCGI +FollowSymLinks +SymLinksIfOwnerMatch
    AllowOverride All
    order allow,deny
    Allow from all

    AddHandler cgi-script cgi
    DirectoryIndex gitweb.cgi

  </Directory>

  BrowserMatch ".*MSIE.*" \
    nokeepalive ssl-unclean-shutdown \
    downgrade-1.0 force-response-1.0

  LogLevel Info
  ErrorLog "/var/log/apache2/gitweb_error_log"
  TransferLog "/var/log/apache2/gitweb_access_log"

</VirtualHost>

注:元の構成ファイル(テンプレートで、 のようなプレースホルダー値を持つ ) では、Git リポジトリの場所を知っている Gitolite を呼び出しているため、@PORT_HTTP_GITWEB@使用しませんでした。GITWEB_PROJECTROOT

gitweb.confただし、ファイルに変数を設定しますが、 gitweb のドキュメントGITWEB_PROJECTROOTによると、これは と同じ役割を果たし ます。

 $projectroot::

プロジェクト パスの先頭に追加される絶対ファイル システム パス。リポジトリへのパスは$projectroot/$project. インストール時に
設定します。 gitweb がリポジトリを見つけるには、この変数を正しく設定する必要があります。$GITWEB_PROJECTROOT

たとえば、$projectrootが " " に設定されている場合は/srv/git、gitweb 構成ファイルに次のように記述します。

----------------------------------------------------------------------------
our $projectroot = "/srv/git";
----------------------------------------------------------------------------

それから:

------------------------------------------------
http://git.example.com/gitweb.cgi?p=foo/bar.git
------------------------------------------------

およびその path_info ベースの同等物

------------------------------------------------
http://git.example.com/gitweb.cgi/foo/bar.git
------------------------------------------------

ファイルシステムのパス「/srv/git/foo/bar.git」にマップされます。


Git 2.19 の 2018 年 8 月の更新 (5 年後の 2018 年第 3 四半期)

" git instaweb" は、RedHat ベースのディストリビューション上の新しい Apache でより適切に動作するように調整されています。

コミット 757b124 (2018 年 8 月 7 日) およびコミット 1976311 (2018 年 8 月 8 日) によるSebastian Kisela ( skisela)を参照してください。
( 2018 年 8 月 20 日、コミット 93ded33Junio C Hamanoによってマージされました)gitster

git-instaweb: apache >= 2.4 で apache2 の設定を修正

生成された apache2 構成は、apache >= 2.4 で失敗します。エラーログには次のように記載されています。

AH00136: Server MUST relinquish startup privileges before accepting connections.  
Please ensure mod_unixd or other system security module is loaded.
AH00016: Configuration Failed

unixdモジュールをロードしてこれを修正します。
これは古いhttpdものでも機能するため、IfVersion条件は必要ありません。(CentOS-6 の httpd-2.2.15 でテスト済み)。

于 2013-02-27T07:15:14.877 に答える