将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更改)。 - 然后可以按照上述步骤进行操作。
在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
@enovav感谢您的反馈。我已经将它包含在答案中以提高可见性。 – VonC 2012-02-08 21:24:26