Debian/Apache - 设置 git 服务器 + gitweb(无虚拟主机)

Debian/Apache - 设置 git 服务器 + gitweb(无虚拟主机)

我正在努力用 gitweb 设置一个干净且正常工作的 git 服务器无虚拟主机

软件

  • Debian 8
  • Apache 2.4

初始设置

  • mod userdir 已激活
  • Apache DocumentRoot 是 /home/user/public_html
  • 已启用 php5-cgi 和相关 Apache 模块
  • 将“用户”添加到 www-data 并添加正确的权限

目标

关注的资源

/etc/apache2/sites-enabled/git.conf

Alias /git /home/user/git

<Directory /home/user/git>
 Options All
 AllowOverride All
 Require all granted

Options +ExecCGI
AddHandler cgi-script .cgi
DirectoryIndex gitweb.cgi
SetEnv GITWEB_CONFIG /etc/gitweb.conf

RewriteEngine on

RewriteRule ^([^.]+\.git.*)$ /git/gitweb.cgi/$0 [L,PT]
</Directory>

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))$" \
   /usr/lib/git-core/git-http-backend/$1

  SetEnv GIT_PROJECT_ROOT /home/user/git
  SetEnv GIT_HTTP_EXPORT_ALL
  SetEnv REMOTE_USER=$REDIRECT_REMOTE_USER

/etc/apache2/conf-enabled/git.conf

<IfModule mod_alias.c>
  <IfModule mod_cgi.c>
    Define ENABLE_GITWEB
  </IfModule>
  <IfModule mod_cgid.c>
    Define ENABLE_GITWEB
  </IfModule>
</IfModule>

<IfDefine ENABLE_GITWEB>
  Alias /git /usr/share/gitweb

  <Directory /usr/share/gitweb>
    Options +FollowSymLinks +ExecCGI
    AddHandler cgi-script .cgi
 DirectoryIndex gitweb.cgi
  </Directory>
</IfDefine>

现在http://myserver/git显示了一个存储库列表,但是http://myserver/git/repo.git/“未找到”并且无法访问 gitweb。

答案1

通过 apt-get 安装 gitweb 后,您应该运行以下命令:

# a2enmod cgi
# service restart apache2

然后输入http://你的主机名/gitweb

相关内容