使用 gitweb 与 nginx 时遇到问题

使用 gitweb 与 nginx 时遇到问题

我在 /home/raynes/pubgit/ 目录中有一个 git 存储库。我尝试使用 gitweb 为其提供 Web 界面。我使用 nginx 作为其他所有 Web 服务器,因此我真的不想为此而使用另一个。

我主要遵循这个指南:http://michalbugno.pl/en/blog/gitweb-nginx,这是我通过谷歌找到的唯一指南,而且是最新的。fcgiwrap 显然不在 Lucid Lynx 的存储库中,所以我手动安装了它。我通过 spawn-fcgi 生成实例:

spawn-fcgi -f /usr/local/sbin/fcgiwrap -a 127.0.0.1 -p 9001

一切都很好。我的 /etc/gitweb.conf 如下:

# path to git projects (<project>.git)
$projectroot = "/home/raynes/pubgit";
$my_uri = "http://mc.raynes.me";
$home_link = "http://mc.raynes.me/";

# directory to use for temp files
$git_temp = "/tmp";

# target of the home link on top of all pages
#$home_link = $my_uri || "/";

# html text to include at home page
$home_text = "indextext.html";

# file with project list; by default, simply scan the projectroot dir.
$projects_list = $projectroot;

# stylesheet to use
$stylesheet = "/gitweb/gitweb.css";

# logo to use
$logo = "/gitweb/git-logo.png";

# the 'favicon'
$favicon = "/gitweb/git-favicon.png";

我的 nginx 服务器配置如下:

server {
    listen 80;
    server_name mc.raynes.me;
    location / {
        root /usr/share/gitweb;
        if (!-f $request_filename) {
            fastcgi_pass   127.0.0.1:9001;
        }
        fastcgi_index  index.cgi;
        fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        include        fastcgi_params;
    }
}

这里唯一的区别是我将 fastcgi_pass 设置为 127.0.0.1:9001。当我访问http://mc.raynes.me我打开的页面只显示“403”,没有其他信息。我完全不知道我做错了什么。

有任何想法吗?

答案1

确保您的 SCRIPT_FILENAME 正确。我发现必须指定完整的绝对位置才能使其正常工作:

fastcgi_param  SCRIPT_FILENAME  /usr/share/gitweb/gitweb.cgi;

如果仍然出现错误,您可能还需要指定 Gitweb 配置文件的完整路径:

fastcgi_param  GITWEB_CONFIG    /etc/conf.d/gitweb.conf;

相关内容