从php脚本运行git pull

我正在尝试使用Git,GitHub和SSH的完美工作stream,除了运行git pull命令之外,我已经设置了一切。

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

无法创build目录“/.ssh”。 主机密钥validation失败。 致命的:远端意外挂断

如果我在terminal(作为根)运行它,它工作得很好,但我需要这个钩子从邮政接收url(Github)工作。

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

这是CentOS中的一个(dv)。

Solutions Collecting From Web of "从php脚本运行git pull"

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

流量是这样的(调整你的需要)

 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访问它需要从哪个回购拉。

然后你可以在服务器上再次测试apache并运行git pull

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

一旦这个工作,你应该能够通过PHP运行一个git pull