4

我的 CentOs 5.5 服务器上有一个正常运行的 git 存储库。我想要一个使用 gitweb 的存储库的 Web 用户界面。

我使用http://git-scm.com/book/ch4-6.html上的说明安装了 gitweb,并且我设法让我的 apache 服务器正确运行 cgi。我将我的存储库放入/pub/git并使用. 不幸的是,我看不到我的存储库,并且网页显示消息“未找到此类项目”,我在谷歌上搜索但没有成功。gitweb.conf/etc/$projectroot = '/pub/git';

我尝试将该行添加$projects_list = '/pub/git/projects.list';gitweb.conf并使用我的存储库的名称创建文件projects.list(例如repos1.git)。没有什么变化。如果我将不存在的存储库的名称放在 中/pub/git,则网页会显示更流行和调查的错误消息“404 - 未找到项目”。

请注意,apache 用户可以访问所有文件和存储库。

我的内容/etc/gitweb.conf是:

$projectroot = '/pub/git';
$projects_list = '/pub/git/projects.list';

谢谢!

4

7 回答 7

10

我解决了自己的问题,我想我会发布解决方案以防其他人遇到这个问题。

事实证明,gitweb 根本找不到git可执行文件。换句话说,http://git-scm.com/book/ch4-6.htmlmake GITWEB_PROJECTROOT="/path/to/git/git"中显示的 make 说明是不够的。

我花了这么长时间才弄清楚这一点的原因是因为人们预计会出现另一种类型的问题,而不仅仅是一个空的存储库列表!似乎是为了显示 gitwebgit rev-list在项目上运行的最新提交消息。当它找不到git时,它只是放弃列出项目。我所要做的就是将该行添加$GIT = '/path/to/git/git';到我的gitweb.conf.

干杯!

于 2013-03-20T02:12:02.557 回答
1

我在bluehost.com上遇到了同样的问题,提供 git 二进制文件的完整路径并没有帮助,但正如gitweb.cgi评论中所说的“如果你的网络服务器有一个合理的 PATH,这可能只是“git” ”解决了这个问题,所以所有需要解决的问题是:

our $GIT = "git";

gitweb.cgi本身或“ gitweb_config.perl ”中

于 2013-05-14T17:22:19.607 回答
1

如果你已经创建了repos,然后安装了gitweb,那么repos的保护可能会出错。我最初的 UMASK 是 077,所以我所有的 repos 只能由 git 用户访问。

当我这样做时:

cd /home/git
chmod -R 750 repositories

并将 www-data 添加到“git”组:

usermod -a -G  git www-data

我让它工作了。

于 2014-03-24T14:56:30.810 回答
1

我认为 projectroot 是在 gitweb.conf 中定义的——但它也被硬编码到 gitweb.cgi 中。也许,我的实现中没有 gitweb.conf 的来源。无论如何,我将 gitweb.cgi 编辑为our $projectroot = /home/git并为我修复了它。

于 2016-11-16T02:39:37.850 回答
0

我也在 CentOS 6.4 上遇到了这个问题,只是想将我的解决方案添加到这个线程中。

对我来说,问题是启用了 SELinux。这阻止了 httpd 进程访问我的存储库目录,即使我对其进行了 chmod 777。

对我来说,只要禁用 SELinux 就可以解决问题。如果禁用不是一个选项,那么您需要查看如何配置 SELinux 以允许 httpd 访问您的存储库目录。

于 2013-07-31T17:44:23.873 回答
0
  1. 检查文件权限$projectroot
    • apache或nginx是否可以读取/遍历所有内容?
  2. 查看/etc/gitweb.conf
    • 我不得不改变$projectroot$project_list在这两个地方
  3. 查看/var/www/git/gitweb.cgi
    • 我不得不改变$projectroot$project_list在这两个地方
  4. 你的项目出口了吗?
    • 查看/path/to/project.git/git-daemon-export-ok
  5. 检查 selinux 政策
于 2015-03-05T01:23:18.120 回答
-1

对于我刚刚为 gitweb 配置的 CentOS6 服务器,是 SELinux 导致的。

setnforce 0

解决了这个问题

于 2015-04-09T02:43:55.893 回答