Ubuntu 服务器上的 gitweb 作为位置/目录而不是虚拟主机

Ubuntu 服务器上的 gitweb 作为位置/目录而不是虚拟主机

由于 DynDNS 不再免费解析子域名,我不得不在 apache2 的子目录中使用 gitweb。Pro Git 等常见的工具建议使用类似

<VirtualHost *:80>
    ServerName gitserver
    DocumentRoot /srv/gitosis/repositories/
    <Directory /srv/gitosis/repositories/>
        Options ExecCGI +FollowSymLinks +SymLinksIfOwnerMatch
        AllowOverride All
        order allow,deny
        Allow from all
        AddHandler cgi-script cgi
        DirectoryIndex gitweb.cgi
    </Directory>
</VirtualHost>

我尝试了使用具有不同属性组合的位置和目录标签的各种变化,但没有取得任何显著的成功。

我的第一个想法接近以下内容

Alias /gitweb /srv/gitosis/repositories
<Location /gitweb>
    AuthType Basic
    AuthName "gitweb Repository view"
    AuthUserFile /etc/apache2/gitweb.passwd
    Require valid-user
    SSLRequireSSL
    SetEnv GITWEB_CONFIG /etc/gitweb.conf
    AddHandler cgi-script cgi
    DirectoryIndex /usr/lib/cgi-bin/gitweb.cgi
</Location>

Apache 属于 gitosis 组,该组可以读取和执行该存储库。

那么,在 Ubuntu 10 上运行 websvn 的预期方法是什么?

编辑:在 repo 中以用户 gitosis 身份使用“git instaweb --httpd=apache2”可以正常工作

答案1

最后我找到了一些解决方案,或者至少是一种解决方法,因为它似乎不太优雅。我使用现有的 ssl vhost 和以下配置:

Alias /gitweb /usr/lib/cgi-bin
Alias /gitweb.css /usr/share/gitweb/gitweb.css
Alias /git-favicon.png /usr/share/gitweb/git-favicon.png
Alias /git-logo.png /usr/share/gitweb/git-logo.png
<Directory /usr/lib/cgi-bin>
    AuthType Basic
    AuthName "Gitweb Repository View"
    AuthUserFile /etc/apache2/gitweb.passwd
    Require valid-user
    SSLRequireSSL
    Options +Indexes +ExecCGI +FollowSymLinks +MultiViews
    AddHandler cgi-script .cgi
    DirectoryIndex gitweb.cgi
    Order allow,deny
    Allow from all
</Directory>

我不喜欢这些别名,但至少它在不触及 cgi 的情况下也能工作。

相关内容