将Gitolite服务器上的回购服务器推送到Gitolite,同时还能够从客户端推送和拉取

问题描述:

我有一个Gitolite服务器,我将我的网站源代码推送到该服务器。服务器然后使用钩子将回购点克隆到网站文件夹中。我希望能够在我的网站中更改PHP脚本中的文件,然后让PHP脚本自动添加,提交并将这些更改后的文件推送回Gitolite服务器。将Gitolite服务器上的回购服务器推送到Gitolite,同时还能够从客户端推送和拉取

到目前为止,我已经设法添加和提交这些文件,但我无法推送它们。如果我尝试推送到本地对存储库的引用,我被告知它并不是一个回购(我认为它与sudo一起使用的文件权限问题),如果我尝试通过SSH推送,我不能当我在Lion服务器的_www用户下运行这个私钥时指定一个私钥。是否有可能推到当地的Gitolite回购?

推送到Gitolite的想法是确保Gitolite可以得到您的ID,以便使用此ID与其内部授权配置文件。
使用SSH是这样做(因为Gitolite注册的公共密钥的名字将被用来作为你的ID名)

因此,一个好办法:

  • 你需要确保_www用户授权推到你的回购
  • 你需要有~_www/.ssh下公钥/私钥被你推
  • 使用需要添加_www用户的公钥gitolite键。

OP enovav评论说:

  • 在狮子服务器中,用户_www没有一个主文件夹。
  • PHP在/Library/WebServer中查找SSH密钥。
  • 默认情况下,登录_www用户是不可能的,但this thread解释了如何。 (chsh -u Admin _www将shell从/ bin/false更改)。
  • 然后可以按照上述步骤进行操作。
+0

在Lion Server上,_www用户没有主文件夹。我检查了PHP日志,发现它实际上是在'/ Library/WebServer'中寻找SSH密钥。下一步:创建SSH密钥。我试图通过键入'sudo -i -u _www'来成为shell中的'_www'用户。但是,这并没有立即返回,也没有打印任何消息。经过一番研究,我找到了[这个主题](http://ask.metafilter.com/99605/login-as-www-user),它解释了如何在Mac OS X中登录'_www'用户。使用命令'chsh -u Admin_www'更改了shell,然后按照上述步骤操作。 – shearnonsense 2012-02-08 17:08:35

+0

@enovav感谢您的反馈。我已经将它包含在答案中以提高可见性。 – VonC 2012-02-08 21:24:26