如何使用git-http-backend解决导致错误500的suexec策略违规?

时间:2012-09-08 22:08:56

标签: git suexec

我正试图让git-http-backend在我的远程vps上运行而没有运气。我以与this question类似的方式调整了httpd.conf,但是只要添加ScriptAlias指令,就会发生错误。

Apache错误日志:

 suexec policy violation: see suexec log for more details
 Premature end of script headers: git-http-backend

Suexec log

 error: target uid/gid (503/500) mismatch with directory (0/0) or program (0/0) or trusted user (0/10)

有人可以评论通常如何解决suexec问题吗?

修改

主要问题似乎是不允许Web服务器运行cgi脚本。

目前,关于配置suexec的文档已经超出了我的范围。我现在选择禁用它,这允许Web服务器运行这些脚本。我现在可以成功地推销回购。我发现this article很有帮助。

3 个答案:

答案 0 :(得分:4)

设置moinmoin时出现此错误。我怀疑你需要注意的两条线(在我的情况下,都是):

[2014-09-18 17:17:18]: uid: (1009/testsite) gid: (1006/testsite) cmd: moin.cgi
[2014-09-18 17:17:18]: target uid/gid (1009/1006) mismatch with directory (0/0) or program (0/0)

第一行是声明一个进程 - 在这种情况下由testsite:testsite拥有 - 正在尝试执行一个命令(moin.cgi)。

然后检查调用进程的用户id /组id,看它是否与要执行的命令匹配,当失败时触发第二个输出(0/0表示root / root)。

简单地调用chown应该修复它:

chown -R testsite:testsite </path/to/directory-or-binary>

答案 1 :(得分:1)

好吧,显然你找到了自己的方式......

我今天花了7个小时试图解决这个问题,联系我的主人(godaddy)3次。一切都没有占上风......

我努力转向SUEXEC&#34;关闭&#34;然后在我的服务器上重新安装Apache(全新安装)。最后,当我的日子即将结束时,我终于开始工作......

答案 2 :(得分:-1)

我在suexec指令中将/ var / www /目录命名为我的用户,它可以工作..!