我制作了一个小的php webhook,它执行git命令来检查分离的工作树中远程存储库中的代码。
我明白了:
error: cannot open .git/FETCH_HEAD: Permission denied
然后我将.git目录的所有权更改为www-data,以确保它由PHP脚本编写。我这样做是因为当我从浏览器执行whoami时,我得到了www-data。但现在我总是得到:
a:5:{i:0;s:29:"Host key verification failed.";i:1;s:45:"fatal: Could not create www/.ssh directory.";i:2;s:0:"";i:3;s:51:"Please make sure you have the correct access rights";i:4;s:26:"and the repository exists.";}
现在为此,我打开了/ etc / passwd,发现用户www-data
的目录设置为/ var/www
。因此,我使用root创建了/var/www/.ssh
并执行了sudo chown -R www-data:www-data /var/www/.ssh
在新创建的.ssh目录中,我做了一个ssh-keygen,复制了公钥并添加到我的bitbucket帐户。
我再次尝试执行php脚本,但我得到了同样的错误。 'Host key verification failed'
任何接受者?我正在使用nginx和php-fpm
我尝试过这样做:https://serverfault.com/questions/362012/running-git-pull-from-a-php-script 但这没用。我甚至无法以新用户身份登录。因此,对此采取新的方法可能有所帮助。