Я пытаюсь настроить этот экземпляр 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, и все заработало, как ожидалось.