安装GitWeb - 如何

时间:2013-02-27 05:20:07

标签: git gitweb

我刚刚在我的生产服务器上安装了Git,并希望让GitWeb能够使用它。当我偶然发现一个如何使用gt web工作的教程时,我变得非常有兴趣让它工作......

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 / contains ....

$:/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

我上面指定的配置是否有效或我需要指定?如果是这样,我将访问GitWeb的URL是什么?我需要serverName,serverAlias和serverAdmin吗?

感谢您的帮助

1 个答案:

答案 0 :(得分:2)

您将使用的网址是

http://git.example.org

但我对你的配置不太确定。 Mine is simpler,我总是推荐像http(s):// yourServer / gitweb这样的地址,而不仅仅是http(s):// yourServer /:如果你需要添加更多服务,你可以添加更多的root网址(如/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>

注意:在我的original config file(这是一个模板,占位符值为@PORT_HTTP_GITWEB@)中,我没有使用GITWEB_PROJECTROOT,因为我正在调用Gitolite,它知道Git在哪里回购是。

我确实在gitweb.conf file中设置了一个变量,根据gitweb documentation,它与GITWEB_PROJECTROOT扮演的角色相同:

 $projectroot::
  

将预先添加到项目路径的绝对文件系统路径;存储库的路径是$projectroot/$project   在安装过程中设置为$GITWEB_PROJECTROOT   必须正确设置此变量才能使gitweb找到存储库。

     

例如,如果$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。


2018年8月更新Git 2.19(2018年第三季度,五年后)

git instaweb”已经过调整,可以在基于RedHat的发行版上使用更新的Apache。

commit 757b124commit 1976311(2018年8月7日)和Sebastian Kisela (skisela)(2018年8月8日)Junio C Hamano -- gitster --
(由commit 93ded33合并于{{3}},2018年8月20日)

  

git-instaweb:使用apache&gt; = 2.4

修复apache2配置      

生成的apache2配置失败,apache&gt; = 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进行测试。)