我在 /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;