我正在使用两台服务器,一台用于测试,一台用于生产。我正在配置 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