Gitweb找不到存储库“没有找到这样的项目”

时间:2013-03-19 19:41:07

标签: git gitweb

我的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';文件。不幸的是,我无法看到我的存储库,网页显示了消息"没有找到这样的项目",我用Google搜索没有成功。

我尝试将行$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';

谢谢!

7 个答案:

答案 0 :(得分:10)

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

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

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

干杯!

答案 1 :(得分:1)

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

our $GIT = "git";

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

答案 2 :(得分:1)

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

当我这样做时:

cd /home/git
chmod -R 750 repositories

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

usermod -a -G  git www-data

我明白了。

答案 3 :(得分:0)

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

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

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

答案 4 :(得分: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政策

答案 5 :(得分:0)

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

答案 6 :(得分:-1)

对于我刚刚为gitweb配置的CentOS6服务器,它是由SELinux引起的。

setnforce 0

解决了问题