0

我正在尝试设置一个简单的 PHP 脚本,git pull当您转到我设置的 AWS Amazon Linux 2 AMI 测试 Web 服务器上的特定 URL 时,它可以执行此操作。

我在尝试这样做时遇到了一些问题,此后一直在关注这篇文章以尝试解决问题:https ://jondavidjohn.com/git-pull-from-a-php-script-not-so-simple /

我被困在作者说要运行的步骤上sudo -u www git pull

在我的系统中,apache我们需要为 Apache 用户git pull添加必要的 SSH 密钥信息,但它不起作用。当我尝试运行以下内容时:

sudo -u apache git pull

我收到以下错误:

Failed to add the host to the list of known hosts (/usr/share/httpd/.ssh/known_hosts).
Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

我不知道这是否是一个问题,但..ssh下没有目录/usr/share/httpd。下有一个known_hosts文件~/.ssh,所以也许这是我需要担心的文件?我不太确定。

这很像是权限错误(错误消息暗示了很多),但我真的不确定需要更改哪个文件以及如何更改。任何建议将不胜感激。谢谢你。

4

1 回答 1

0

非常感谢 ArSeN 在我们上面的评论中引导我完成整个过程。最终为我解决了这个问题的是更改用户 SSH 密钥需要去的/usr/share/httpd目录的权限apache,然后将已经使用的 SSH 密钥复制ec2-user到该目录。

这是我运行的命令:

sudo chown -R ec2-user:apache /usr/share/httpd
sudo chmod -R 777 /usr/share/httpd
sudo cp -r /home/ec2-user/.ssh/ /usr/share/httpd/.ssh/
sudo chown -R ec2-user:apache /usr/share/httpd
sudo chmod -R 755 /usr/share/httpd
sudo chown -R ec2-user:apache /var/www
cd /var/www/project-name/
sudo -u apache git pull
sudo chown -R ec2-user:apache /var/www

正如您在命令中看到的那样,无论出于何种原因,我都必须运行chown几次才能正确设置用户/组的内容,但最终它成功了,我能够得到我想要的。再次感谢,ArSeN。

于 2020-03-11T13:52:08.840 回答