我正在尝试完美的工作流程,使用 Git、GitHub 和 SSH,除了运行命令之外,我已经设置好了一切git pull
来自 PHP.
当我跑步时exec('git pull')
i get:
无法创建目录“/.ssh”。主机密钥验证失败。
fatal:远端意外挂断
如果我在终端(以 root 身份)运行它,它工作得很好,但我需要这个钩子才能从接收后 URL (Github) 工作。
If i do exec('whoami')
i get apache
.
这是来自 mediatemple 的 CentOS 的 (dv)。
如果你想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 访问它需要从中提取的任何存储库。
然后你可以再次在服务器上测试su'ing 到 apache 并运行git pull
su apache
cd ~/working-copy
git clone my-project
一旦工作正常,您应该能够运行git pull通过 PHP。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)