Gitweb无法找到存储库“找不到这样的项目”
我在我的CentOs 5.5服务器上运行了git存储库。我想使用gitweb为我的仓库提供一个Web用户界面。Gitweb无法找到存储库“找不到这样的项目”
我使用http://git-scm.com/book/ch4-6.html上的说明安装了gitweb,并且设法让我的apache服务器正确运行cgi。我把我的知识库放在/pub/git
中,并在/etc/
中创建gitweb.conf
文件,其行$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';
谢谢!
我解决了我自己的问题,我想我会发布解决方案,以防其他人遇到此问题。
事实证明,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
。
干杯!
我打了同样的问题上bluehost.com,并提供完整路径的git二进制没有帮助,但由于它在gitweb.cgi说意见“这可能仅仅是‘混帐’,如果你的Web服务器有一个合理的PATH“治愈这个问题,所以都是一个需要解决它是:
our $GIT = "git";
无论是在gitweb.cgi本身或” gitweb_config.perl“
我也在CentOS 6.4上遇到这个问题,只是想把我的解决方案加入到这个线程中。
对我来说,问题在于SELinux已启用。这阻止了httpd进程访问我的存储库目录,即使我chmod 777。
对我来说,只是禁用SELinux解决了这个问题。如果禁用不是一个选项,那么您需要查看如何配置SELinux以允许httpd访问您的存储库目录。
如果您已经创建了回购站,然后安装gitweb,那么 回购站的保护可能是错误的。 我的初始UMASK是077,所以我所有的回购只能由git用户访问 。
当我做:
cd /home/git
chmod -R 750 repositories
,并添加www数据的 “混帐” 组:
usermod -a -G git www-data
我得到它的工作。
- 为
$projectroot
- 检查文件的权限就是一切可读/可穿越由Apache或nginx的?
- 检查
/etc/gitweb.conf
- 我不得不改变
$projectroot
和$project_list
在这两个地方
- 我不得不改变
- 检查
/var/www/git/gitweb.cgi
- 我不得不改变
$projectroot
和$project_list
在这两个地方
- 我不得不改变
- 是你的项目出口?
- 检查
/path/to/project.git/git-daemon-export-ok
- 检查
- 检查SELinux策略
对于CentOS6服务器,我只是配置GitWeb里,它是SELinux引起了它。
setnforce 0
固定问题
虽然SELinux可能是造成这种情况的原因,但彻底禁用它并不是一个可接受的解决方案。 – 2015-05-19 20:05:56
我以为projectroot在gitweb.conf定义 - 但它也被硬编码到gitweb.cgi。也许,gitweb.conf在我的实现中不是来源的。无论如何,我编辑gitweb.cgi到our $projectroot = /home/git
,并为我解决它。
你可以发布你的'/ etc/gitweb.conf'的确切内容吗? – Tuxdude 2013-03-19 19:46:10
@Tuxdude,谢谢你的关注。 conf文件只包含两行'$ projectroot ='/ pub/git'; $ projects_list ='/pub/git/projects.list';' – Enzo 2013-03-20 00:34:04