gpt4 book ai didi

git - 安装 GitWeb - 如何

转载 作者:太空狗 更新时间:2023-10-29 13:43:50 26 4
gpt4 key购买 nike

我刚刚在我的生产服务器上安装了 Git,我希望 GitWeb 可以使用它。当我偶然发现一个显示如何使用 git 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/包含....

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

谢谢你的帮助

最佳答案

您将使用的网址是

http://git.example.org

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

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

我确实在 gitweb.conf file 中设置了一个变量, 不过,根据 gitweb documentation,它与 GITWEB_PROJECTROOT 起着相同的作用:

 $projectroot::

Absolute filesystem path which will be prepended to project path; the path to repository is $projectroot/$project.
Set to $GITWEB_PROJECTROOT during installation.
This variable has to be set correctly for gitweb to find repositories.

For example, if $projectroot is set to "/srv/git" by putting the following in gitweb config file:

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

then:

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

and its path_info based equivalent

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

will map to the path '/srv/git/foo/bar.git' on the filesystem.


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

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

参见 commit 757b124 (2018 年 8 月 7 日),和 commit 1976311 (2018 年 8 月 8 日)Sebastian Kisela (skisela) .
(由 Junio C Hamano -- gitster -- merge 于 commit 93ded33 ,2018 年 8 月 20 日)

git-instaweb: fix apache2 config with apache >= 2.4

The generated apache2 config fails with apache >= 2.4. The error log states:

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

Fix this by loading the unixd module.
This works with older httpd as well, so no IfVersion conditional is needed. (Tested with httpd-2.2.15 on CentOS-6.)

关于git - 安装 GitWeb - 如何,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15104736/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com