从php脚本运行git pull

时间:2012-02-21 01:39:17

标签: php linux git permissions ssh

我正在尝试Perfect Workflow, with Git, GitHub, and SSH,除了从php运行命令git pull之外,我已经完成了所有设置。

当我运行exec('git pull')时,我得到:

  

无法创建目录'/.ssh'。主机密钥验证失败。   致命:远程端意外挂断

如果我在终端中运行它(以root身份)它可以正常工作,但我需要这个钩子才能使用Post-Receive URL(Github)。

如果我exec('whoami')我得到apache

这是来自medocmple与CentOS的(dv)。

1 个答案:

答案 0 :(得分:8)

如果你希望 apache (用户)能够从git中提取,你必须为apache创建一个ssh密钥,然后将其添加到github上的只读密钥。 / p>

流程是这样的(根据您的需要调整)

usermod -s /bin/bash apache
su apache
cd ~
ssh-keygen # work through the keygen dance (added a dash)

上传(在这里指代apache的homedir)~/.ssh/id_rsa.pub到github,并让apache访问它需要从哪个repos中提取。

然后你可以再次通过 su 来测试服务器上的apache并运行 git pull

su apache
cd ~/working-copy
git clone my-project

一旦有效,您应该可以通过PHP运行 git pull

相关问题