【问题标题】:Cannot see repositories看不到仓库
【发布时间】:2011-10-08 08:44:01
【问题描述】:

安装了 GitWeb 和 CGit 来试用我的 Git/Gitosis 存储库的 Web 界面。在 Fedora 13 上运行,我的 Gitosis 运行良好。我安装了 gitweb 和 cgit 并将配置设置为指向我的存储库,但 gitweb 或 cgi 都不会列出存储库。 Gitweb 显示 gitweb 页面但显示:

404 - 未找到项目

我在 /etc/gitweb.conf 文件中列出了正确的目录:

 $projectroot = "/var/lib/gitosis/repositories";
 $projects_list = "/var/lib/gitosis/gitosis/projects.list";
 $export_ok="";
 $strict_export = "true";

CGit 显示 cgit 页面但显示:

不是 git 存储库: '/var/lib/gitosis/repositories/code/test.git'

当我单击此测试存储库链接时(是的,它存在)。我有正确的目录 在 /etc/cgitrc 文件中列出:

 repo.url=Test Repo
 repo.path=/var/lib/gitosis/repositories/code/test.git
 repo.desc=master test repository
 repo.owner=gitosis@gitserv
 repo.readme=info/web/about.html

因为两者都没有列出存储库,所以我觉得它一定是我的配置,但我似乎无法弄清楚要配置什么来显示这些存储库。我在 /var/lib/gitosis/repositories 中有我的存储库 SymLinked,它指向目录 /home/git。我还在 /var/lib/gitosis/repositories 下设置了我的存储库作为代码和 conf 和文档,您可以使用 code/test.git 或 conf/test.git 或 docs/test.git 查看它们。我认为这可能是问题所在,并将存储库直接复制到 /var/lib/gitosis/repositories 目录中,但它们仍然没有显示。请任何人都可以指出我可以尝试使其正常工作的任何事情。好几天了。

【问题讨论】:

  • '/var/lib/gitosis/gitosis/projects.list' 包含什么(请注意,您不需要它,因为 gitweb 会自动检测存储库)? find /var/lib/gitosis/repositories -type f -name HEAD 返回什么?
  • 查找返回“/var/lib/gitosis/repositories/gitosis-admin.git/HEAD”并且项目包含“code%2Ftest.git gitosis%40gitserv”形式的存储库列表每行之类的
  • find 似乎没有进入符号链接...嗯...
  • 我不确定这是否是系统需要能够做的最终展示,以便 gitweb 和 cgit 可以显示 repo 信息,但我使用了“find repositories -type f -name当我将 gitosis 搬回家时,来自 /opt/gitosis 的 HEAD”。我终于得到了一个显示,然后我的 gitweb 和 cgit 开始显示 repos 和 repos 数据。谢谢

标签: git gitweb


【解决方案1】:

由于这些存储库实际上位于您的主目录中,因此可能是权限问题。也许你的家是chmodded 不能被“其他人”阅读?

这些存储库目录(在您的家中,而不是符号链接中)的权限是否足够宽以允许网络服务器查看它们?为了让网络服务器查看您的存储库,存储库的完整路径和存储库本身必须能够被网络服务器读取,并且网络服务器需要为r+x 提供目录。

使用一些ls -la 来查看权限,chmod 使用良好的判断力。

或者,可能更好...只需将存储库移到其他地方,例如/opt/gitrepo,并在那里正确设置权限。我建议这样做是因为有充分的理由说明您的家应该是世界可读的。

【讨论】:

  • 我已经尝试了权限一直到 777 只是为了看看这是否是问题所在。还尝试将存储库完全移动到 /var/lib/gitosis 目录中。但似乎没有任何效果。我已经用了几天了,我会再次尝试移动目录。
  • 你需要确保无论你把这些repos放在哪里,所有指向repos的目录repos的文件本身都是webserver用户可读的,并且(如果它存在)运行 gitweb 的用户。
  • 好的,我将整个 gitosis 主页和存储库移动到 /opt/gitosis 并让 gitois 和 git ssh 正常工作。然后我更改了 gitweb (/etc/gitweb.conf) 和 cgitrc (/etc/cgitrc) 的配置文件以指向新的 repos。重新启动httpd。现在我的回购出现了。哇哦。
【解决方案2】:

请注意,主目录的问题很可能是由于启用了 SELinux。尝试在 /etc/sysconfig/selinux 中禁用。

【讨论】:

  • 为什么不在禁用 SELinux 之前检查 audit.log?
  • 另外,作为评论可能会更好
猜你喜欢
  • 2018-03-25
  • 1970-01-01
  • 2018-11-25
  • 2023-03-18
  • 2017-03-25
  • 1970-01-01
  • 2019-10-28
  • 1970-01-01
  • 2021-09-03
相关资源
最近更新 更多