1

我正在使用两台服务器,一台用于测试,一台用于生产。我正在配置 gitolite 以使用 http 协议(ssh 协议也在工作)。我已按照此页面http://gitolite.com/gitolite/ssh-and-http.html的说明进行操作

在我的测试服务器中,一切正常,我可以使用git clone http://user:password@testing.server/gitolite/repo.git. 然后,我将所有内容从测试服务器复制到生产服务器,因此所有配置(使 gitolite 与 http 一起工作)都完全相同。但是当我跑步时,git clone http://user:password@productive.server/gitolite/repo.git我得到fatal: unable to access http://user:password@productive.server/gitolite/repo.git: The requested URL returned error: 500

我检查了日志,并没有生成suexec 日志,只有 error_log 并且它显示

[Thu Apr 30 11:19:32 2015] [error] [client xx.xx.xx.xx] (13)Permission denied: exec of '/usr/sbin/suexec' 失败
[Thu Apr 30 11:19:32 2015] [错误] [客户端 xx.xx.xx.xx] 脚本头过早结束:gitolite-suexec-wrapper.sh

据此,suexec_log不会生成,因为suexec从未运行。出于同样的原因产生第二行错误。所以这里的问题是第一个错误,但我不知道缺少什么权限。我比较了两台服务器之间的所有文件和权限,它们是相等的。

我用谷歌搜索过,但没有一个解决方案对我有用。顺便说一句,SElinux在两台服务器中都被禁用。

有谁能帮帮我吗,谢谢

编辑 1:添加请求的信息

gitolite 的用户/组:存储库/存储库

包含 gitolite-suexec-wrapper.sh 的文件夹: /var/www/bin
bin 文件夹的权限: 0755 bin 文件夹
的所有者/组: repository/repository

gitolite-suexec-wrapper.sh 的权限: 0700 gitolite-suexec-wrapper.sh
的所有者/组:存储库/存储库

gitolite-suexec-wrapper.sh 内容

#!/bin/bash
#
# Suexec wrapper for gitolite-shell
#

 export GIT_PROJECT_ROOT="/home/repository/repositories"
 export GITOLITE_HTTP_HOME="/home/repository"

 exec ${GITOLITE_HTTP_HOME}/gitolite/src/gitolite-shell
4

1 回答 1

0

正如我在上一条评论中所说,这是该机器的内部网络问题。

现在我已经在另一台机器上安装并配置了 git/gitolite 槽 ssh 和 http,一切正常,按照 gitolite 网站的说明进行操作。我只有一个小问题,我通过将 SElinux 的配​​置从强制模式更改为许可模式(setenforce 0从命令行执行)来解决它

于 2016-02-23T12:38:15.623 回答