ste*_*eha 6 git perl apache-2.2
我已经在服务器上设置了 Git,使用 gitosis 来控制提交访问。我想配置我的 Git 系统,以便我们防火墙内的任何人都可以读取 Git 存储库,我也想设置 Gitweb。
我在各种博客上找到了几个 Gitweb 设置教程,但它们在各种细节上有所不同,其中一些已经过时。我希望这个问题有最新的答案。
我的具体设置是 Red Hat Enterprise Linux。我已经成功安装了 Git、gitosis 以及 Gitweb 和 Apache 包。但是,我还没有弄清楚如何配置 Apache 以实际授予对 Gitweb 的访问权限。
如何设置我的服务器以允许对 Git 进行只读访问,并允许 Gitweb 工作?
安装 gitweb(在 RHEL 上$ yum install gitweb)后,它应该创建一个目录var/www/git并将文件放在.git目录中etc/httpd/conf.d/git.conf。如果这些不存在,请创建它们。将所有 git 存储库放入var/www/git并编辑git.conf以使其执行 cgi 脚本并重写 gitweb 的 URL。这是我所拥有的:
<Directory /var/www/git>
SetEnv GITWEB_CONFIG /etc/gitweb.conf
DirectoryIndex gitweb.cgi
Allow from all
AllowOverride all
Order allow,deny
Options +ExecCGI
AddHandler cgi-script .cgi
<Files gitweb.cgi>
SetHandler cgi-script
</Files>
RewriteEngine on
RewriteRule ^[a-zA-Z0-9_-]+.git/?(\?.)?$ /gitweb.cgi%{REQUESTURI} [L,PT]
</Directory>
Run Code Online (Sandbox Code Playgroud)
还有一个 gitweb.conf 文件,/etc/gitweb.conf其中指向诸如 css、网站图标和徽标之类的内容。我很确定如果您将项目保留在 /var/www/git 中,这些会起作用,但是如果您更改该目录,则可能需要将其放在 gitweb.conf 中。
在 Ubuntu 8.04 上测试:
sudo apt-get install apache2 git-core gitweb
sudo a2enmod rewrite
Run Code Online (Sandbox Code Playgroud)
假设你的 git 项目在/pub/git,编辑文件:/etc/gitweb.conf
$projectroot = "/pub/git";
$git_temp = "/tmp";
#$home_link = $my_uri || "/";
$home_text = "indextext.html";
$projects_list = $projectroot;
$stylesheet = "/gitweb.css";
$logo = "/git-logo.png";
$favicon = "/git-favicon.png";
# enable human readable URLs
$feature{'pathinfo'}{'default'} = [1];
Run Code Online (Sandbox Code Playgroud)
现在,在 Apache config 目录中设置一个新的虚拟主机。编辑一个名为:/etc/apache2/sites-available/gitweb
<VirtualHost *>
ServerName git.mydomain.com
ServerAlias git
DocumentRoot /pub/git
SetEnv GITWEB_CONFIG /etc/gitweb.conf
RewriteEngine on
RewriteRule ^/$ /gitweb [PT]
RewriteRule ^/(.*\.git/(?!/?(HEAD|info|objects|refs)).*)?$ /gitweb%{REQUEST_URI} [L,PT]
# Aliases
ScriptAlias /gitweb /usr/lib/cgi-bin/gitweb.cgi
Alias /gitweb.css /usr/share/gitweb/gitweb.css
Alias /git-logo.png /usr/share/gitweb/git-logo.png
Alias /git-favicon.png /usr/share/gitweb/git-favicon.png
# Logfiles
ErrorLog /var/log/apache2/gitweb.error.log
CustomLog /var/log/apache2/gitweb.access.log combined
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
启用新站点:
sudo a2ensite gitweb
Run Code Online (Sandbox Code Playgroud)
重启阿帕奇:
sudo invoke-rc.d apache2 restart
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
25205 次 |
| 最近记录: |