1

gitweb でシンタックス ハイライトが機能しません。私はこれで数日間立ち往生しており、助けに感謝しています。私は多くの研究を行い、多くのことを試しましたが、何もうまくいかないようです。構文の強調表示なしで gitweb を表示できます。

# cat /etc/centos-release
  CentOS release 6.4 (Final)

# rpm -qa | grep highlight
  highlight-3.8-1.el6.x86_64

# rpm -qa | grep gitweb
  gitweb-1.7.1-3.el6_4.1.noarch

# rpm -qa | grep git
  git-1.7.1-3.el6_4.1.x86_64

/etc/httpd/conf.d/git.conf

Alias /git /var/www/git

# Suexec setup
SuexecUserGroup gitolite gitolite


# Set up appropriate GIT environments
SetEnv GIT_PROJECT_ROOT /var/lib/gitolite/repositories
SetEnv GIT_HTTP_EXPORT_ALL

# Set up appropriate gitolite environment
SetEnv GITOLITE_HTTP_HOME /var/lib/gitolite

# To serve gitweb at the same url, use a ScriptAliasMatch to
# only those URLs that git http-backend can handle, and
# forward the rest to gitweb:
ScriptAliasMatch \
    "(?x)^/(.*/(HEAD | \
                    info/refs | \
                    objects/(info/[^/]+ | \
                             [0-9a-f]{2}/[0-9a-f]{38} | \
                             pack/pack-[0-9a-f]{40}\.(pack|idx)) | \
                    git-(upload|receive)-pack))$" \
    /var/www/cgi-bin/gitolite-suexec-wrapper.sh/$1

# Make sure we can execute gitweb okay
<Directory "/var/www/git">
        Options ExecCGI
        AllowOverride None
        AddHandler cgi-script .cgi
        DirectoryIndex gitweb.cgi
        Order allow,deny
        Allow from all
</Directory>

# We need gl-auth-command executable
<Directory "/var/www/cgi-bin">
    <Files "gitolite-suexec-wrapper.sh">
            Order allow,deny
            Allow from all
    </Files>
</Directory>

/etc/gitweb.conf

# cat /etc/gitweb.conf | grep highlight
  $highlight_bin = "/usr/bin/highlight";
  $feature{'highlight'}{'default'} = [1];

Kogakure gitweb テーマもインストールしました。https://github.com/kogakure/gitweb-theme

4

1 に答える 1

1

私は最近同じ問題を経験しました。

CentOS 6.4 は、Gitweb の Syntax-Highlighting をサポートしていないかなり古い Git リリース (1.7.1) を使用しているようです。構成部分は正しく行いましたが、Gitweb はこれらの変数をどう処理するかまだわかりません。

1 つの解決策は、公式のGit ソース リポジトリに移動し、そこから最新リリース (1.8.5) を取得することです。これには、自分でソースからソフトウェアをビルドする必要があります。

回避策:

全体をビルドしたくなかったので、そこに行って最新のgitweb.cgiを入手しました。このスクリプトは通常、gitweb.perlから作成されますが、README ファイルに記載されているように、名前を変更し、すべてのプレースホルダー (例: "++GIT_BINDIR++") を置き換えることで、手動で作成することもできます。

これは私にとってはうまくいきましたが、リリース全体を再構築してインストール ( make& )した方が安全で安定しているでしょう。make install

于 2013-10-14T16:14:37.067 に答える