Назад | Перейти на главную страницу

Невозможно выполнить git pull с PHP на AWS EC2

Я пытаюсь настроить этот экземпляр EC2 для прослушивания веб-перехватчика от Github, а затем запустить git pull. В сети это выполняется под пользователем apache.

Я следил за: http://jondavidjohn.com/blog/2012/10/git-pull-from-a-php-script-not-so-simple

Когда я получил последнюю часть, с которой вы начинаете бегать:

sudo -u www git pull

Мой сервер спрашивает у меня пароль от пользователя ec2. Насколько я знаю, вы не понимаете, что вы просто получаете ключ, и, хоть убей, я не могу понять, как запустить git pull.

Из моего журнала ошибок apache:

Host key verification failed.
fatal: Could not read from remote repository.

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

Насколько мне известно, мне нужно добавить ключ SSH, но я не могу, потому что я не знаю пароля пользователя ec2 для запуска этой команды для пользователя apache.

Я пробую все и вся:

<?php
// POST http://example.com/pull.php
putenv("HOME=/var/www/worker");

echo shell_exec("
#!/bin/sh
cd /var/www/html/worker/ || exit
unset GIT_DIR
git pull 2>&1
");

Кто-нибудь еще сталкивался с этим?

ОБНОВИТЬ

Когда я бегу sudo bash Затем я запускаю вещи как

[root@ip-10-233-33-33]#

Когда я бегу cat /etc/passwd Я могу подтвердить, что учетная запись, с которой мне нужно работать, называется apache.

Когда я бегу su apache Я получил:

This account is currently not available.

Вы следили за всей статьей. В частности:

Я обнаружил более простой способ - предоставить пользователю apache домашний каталог (через / etc / passwd) и каталог .ssh, а затем запустить команду ssh-keygen от имени пользователя apache (www).

$> sudo -u www ssh-keygen -t rsa Это создает ключи и помещает их в ожидаемое место с соответствующими разрешениями.

Затем я добавил ключ в качестве ключа только для чтения для репозитория BitBucket, и все заработало, как ожидалось.